Saving the property's address keeps its purchase price, and saving a loan amount keeps the loan's purpose
**************** merge the request over the stored loan and property before the whole-record update.
Editing one field of a job, account, debt, other income or expense keeps the rest of the row
Those updates replaced every column, and EMPLOYMENT_TYPE_ID is NOT NULL, so the portal's one-field edits either failed or blanked the rest. **************** mer...
A bankruptcy answer that is not a clear yes or no stays unset
The generic boolean reader treats every word it does not know as false, so a vendor's 'maybe' or 'n/a' became 'no bankruptcy' - a wrong claim about the borrower...
Job numbers from a locked per-org counter, never a count; payments on a commerce invoice
Work order numbers were COUNT(jobs)+1, so two jobs raised at once could share one, and jobs raised from a paid order (ServiceFulfillmentPolicy) got no number at...
Finicity and Truv links get their own connection types
Finicity links were recorded as PLAID_AUTH and Truv as ARGYLE, the 'nearest peer' mapping. A lender switching asset provider from Plaid to Finicity would have h...
A hold verdict that beats the upload's commit no longer strands the document
Found in the live HOLD-path test: with the engines ready, a brief hold is judged in milliseconds and the antivirus.hold.verdict event arrived ~30 ms BEFORE the ...
A customer added or edited in market settings keeps its name, email and phone
**************** ignored firstName, lastName, email and phone, so the market Customers tab created empty accounts and its edits to the person never saved. Prese...
A reseller credit pull records a vendor instead of failing to save
Connection.VENDOR is NOT NULL, but CreditOrderService only stamped a vendor when the key was a direct bureau. Every reseller key (Xactus, Credit Plus, MeridianL...
A subscription can only be ordered or priced from a catalog on offer to the org
createOrder and calculatePrice looked a plan up by id alone, so a member of one tenant could order, or read the pricing of, another tenant's plan. A plan is now...
BLAKE3-256 that is 32 bytes on every BouncyCastle on the classpath
new Blake3Digest(256) is 256 BITS on bcprov 1.78 but 256 BYTES on bcprov-jdk15on 1.70, which this library brings and which loads FIRST in services that also dec...
An updated invoice keeps its due date; an overdue one takes no new charges
Re-sending an updated invoice moved its due date forward, which quietly forgave what the customer already owed late. It now keeps its date and only restarts rem...
A stage move names itself, and a rate change can start a stream
A status set off a call wrote its contact attempt as a CALL, so a stage move into a Contacted stage read "Call Β· Conversation". The attempt now says STAGE_MOVE ...
View Loan Revenue & Cost hangs off own loans
Hanging off the whole pipeline made the own-loans rule unreachable: a holder without View Mortgage Pipeline lost the right at sign-in.
A stream filter starts from the stream's runs, never the org's leads
On the largest org the planner drove the EXISTS from all 795,946 leads. The caller now reads the runs first.
Read pipeline rows as scalars, so a large lender's board loads
The kanban read every application as a plain AppMortgage. Hibernate cannot proxy or batch the inverse one-to-ones, so each row cost about four more round trips;...
Owing money never stops service; only a manual pause does
A past-due subscription stayed live for seven days and then lost everything on the clock. It now stays live for as long as it is past due. A manual pause was th...
One meaning of stale, a capture's lead note, and a lead's list lines close when it is called
Do Not Contact's stop commits
LeadService runs it after its own commit, where a plain transactional call joins the finished transaction and the write is lost without an error. It now runs in...
Going quiet also reads the communication record
The contact rollup has no history from before it was added, so every older lead read as quiet, including ones called this week. A lead is now quiet only when th...
No next action reads a lead's real tasks
The Tasks tab lists checklist items linked to the lead, and LEAD_TASK is the table those migrated from, so a lead with an open task still read as having nothing...
The two-systems guard finds a borrower by phone and email
Almost no lead carries an account, and a loan adopted from another system has no lead, so the guard follows the lead's phone and email to any borrower on a loan...
A reply leaves a run's timer alone, so a plain wait doesn't end early
Canonical templates draw spacers without zero-size text
38 templates drew colour bands and gaps as font-size:0 cells holding , which spam filters score as hidden text. EmailService rewrites these at send time f...
The role editor and app names say SI, not AI, for the SI Assistant and SI Workforce
A final outcome set in Kamo obeys "push stage from Kamo" too
With the setting off, a person marking a loan denied or withdrawn in Kamo still sent ADVERSE_LOAN to Arive. Off now means nothing a person does to the status in...
The LAR is filed in HMDA codes β sex no longer reversed, refinance split, real edit checks
HmdaLarService wrote the application's own (URLA-order) values straight onto the Loan Application Register. The filing file was wrong in ways the HMDA platform ...
Retry the pipeline board read on a Yugabyte read restart; ignore impossible Arive dates
The board loads every loan over several statements; a concurrent write (the Arive import) made Yugabyte fail a later one with 40001, shown to the user as a raw ...
Use the org's own mortgage market, whatever it is titled
ensureMortgageMarket matched only the title "Residential Mortgage Loans", so an org that had renamed its market ("Loans", "KamoMLOS") got a second, empty mortga...
Invoice links keep working after a resend or reminder; a late-sent invoice is not chased the same hour
Every send and reminder minted a new view-online token and replaced the old one, so the link in the first email Harmony received read "no longer available" once...
Approving a card order grants paid access too
AUTO_BILL orders waited for a Stripe checkout that subscription invoicing no longer uses; the ledger charges the saved card on each billing day instead.
Subscription events store JSON states; billing steps run one row per transaction
**************** are jsonb, and every caller wrote a bare status like ACTIVE - an invalid JSON insert that rolled back whatever it was auditing (order activatio...
Name the organization that owns a subscription catalog row
The catalog update/delete methods take a uid alone, so a caller holding the catalog right in any organization could edit another organization's plans, prices, a...
A dat's object key also asks the inbound MMS parts that hold it (SITP MMS)
VOIPService now keeps the pictures and files people text in (VOIP_MESSAGE_ATTACHMENT) through storeContentAddressed, with no Img row. storageExtension found a d...
A god-mode window is open only until its stamped end (SessionPlatformFacts)
godModeActive() now also needs godModeExpiresAt (epoch millis, number or string) to be after now. SecurityService masks an elapsed window only for its own gates...
Clinical audit rows keep purpose/basis/patient; updated_at stamped on every save (SITP TP23FU)
PhiAccessRecorder stamped occurredAt by rebuilding each event from a field list written before the clinical columns existed, and no caller sets occurredAt, so e...
Deleting a mortgage application no longer 500s, and a received one is kept (SITP TP21FU)
DELETE **************** failed for every application: AppMortgageService.delete removed the borrowers through the JPA cascade while borrower_declarations / borr...
IotConnectionCheck is append-only without @Immutable (every link failed with a 500)
Hibernate 6.5 reads the database-generated checked_at back after the INSERT and then sets a lock mode on the entry; an immutable entry refuses it **************...
Keep hook-token and share-token hashes out of JSON; the OAuth secret prefix is a label
**************** was red on main: **************** and previousHookTokenHash, **************** and previousHookTokenHash, and IotShare.tokenHash had no @JsonIgn...
Seat an organization's existing staff when its subscription is set up
A comp, like a first purchase, created its seats UNASSIGNED and seated the owner alone. Everyone else waited for the owner to hand seats out in Billing, which n...
The default Live Support welcome no longer promises someone 'shortly'
Nobody on the team is notified until the visitor sends their first message, so the default now says that: send a message to reach the team, they're notified whe...
SubscribeQueueBatch binds a WorkQueue stream with DeliverPolicy.All
IOT_EVENTS is a WorkQueue stream (IoT SP00-D6) and NATS refuses any other deliver policy there (10101), so iot-service crashlooped at boot. The policy is read f...
An Img keeps the extension its content is stored under β on dedup and on rename
fileExt is part of the storage key (<imgDatId>.<ext>) every reader builds, but dedup matches on the BYTES. Content already held arriving under another name (a ....
Vet and pin every webhook target, return only failure categories, encrypt signing secrets
The outbound webhook worker POSTed to whatever URL a subscriber stored, from inside the cluster, with no egress control - a subscription aimed at **************...
Read the bulk-export and exchange-document sweeps instead of reporting 0
OrgObjectStorageSweep writes BULK_EXPORTS and EXCHANGE_DOCUMENTS rows into object_storage_days, but OrgStorageAggregator only read that table for BRANDING and D...
A market save rejects a missing or unknown custom form
Both association loops skipped a null form id, or one the organization does not own, and the save still returned success. That is how every market lost its form...
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
