<section class="ai-index-only">

## Errors and warnings

Exact shared messages from `fs_api` `transaction.controller` and `crud.controller`. Multi Approval stage actions and serial-number messages are catalogued elsewhere — see Other catalogs. Visitors do not see this section; Vertex AI Search uses it to answer questions about on-screen errors.


### Future date transactions are not allowed

- **Type:** Error
- **Action:** Save, Save And Approve (add / update)
- **When:** `date` is after today in the company timezone and Transaction Preference `futureDateTransactions` is off.
- **Example message:** *Future date transactions are not allowed.*
- **Outcome:** Not saved.
- **Solution:** Set Date to today or earlier, or enable Allow future date transactions.


### Previous date transaction entries are not allowed / cutoff

- **Type:** Error
- **Action:** Save, Save And Approve
- **When:** User setting `preventPrevDateEntry` is on. Either previous dates are fully blocked, or the date is before `prevDateEntryNotBeforeDate`.
- **Example message:** *Previous date transaction entries are not allowed.* or *Transaction date cannot be before 2024-04-01.*
- **Outcome:** Not saved.
- **Solution:** Use an allowed date, or change the user’s previous-date entry settings.


### Accounts closed for the date

- **Type:** Error
- **Action:** Approve, Save And Approve, Master Update (when the shared accounts-closed check runs)
- **When:** The document date is on or before the accounts closing date for the company.
- **Example message:** *Accounts closed for the date*
- **Outcome:** Not posted / date change blocked.
- **Solution:** Use a date after the closing date.


### Cancelling previous date transactions are not allowed / cutoff

- **Type:** Error
- **Action:** Cancel
- **When:** User setting `preventPrevDateCancel` is on. Either previous-date cancel is fully blocked, or the document date is before `prevDateCancelNotBeforeDate`.
- **Example message:** *Cancelling previous date transactions are not allowed* or *Cancelling transactions before 2024-04-01 is not allowed.*
- **Outcome:** Not cancelled.
- **Solution:** Cancel only allowed dates, or change the user’s cancel settings.


### items not found

- **Type:** Error
- **Action:** Save, Save And Approve
- **When:** A required lines collection (`arrayFieldsToProcess` with `required`) has length less than 1 after line processing.
- **Example message:** *items not found*
- **Outcome:** Not saved.
- **Solution:** Add at least one item (or required) line.


### Invalid Data in lines (amount mismatch)

- **Type:** Error
- **Action:** Save, Save And Approve
- **When:** `computeAndValidateItems` finds taxable amount, tax amount, net amount, or total on a line that does not match server recalculation. Raised via `errMsg` from CRUD helpers used on save.
- **Example message:** *Invalid Data in lines 1,3*
- **Outcome:** Not saved. `errData` may include expected vs received amounts.
- **Solution:** Recalculate lines; fix quantity, price, discount, and tax; save again.


### Invalid Data in lines — Batch required

- **Type:** Error
- **Action:** Approve, Save And Approve
- **When:** On approve, an item with `hasBatch` has no `batchId` (skipped for short forms such as material request, packing slip, orders, quotations, and similar).
- **Example message:** *<b>Invalid Data in lines</b> <br/>Batch required in line 2*
- **Outcome:** Not approved.
- **Solution:** Select a batch on each batch-tracked line.


### Item lines total should equal Net Total

- **Type:** Error
- **Action:** Save, Save And Approve
- **When:** Bill processing finds `subTotal` set, no shipping / installation / miscellaneous / bill discount / TCS, and `subTotal != netTotal`.
- **Example message:** *Item lines total should be equal to Net Total if Shipping, Installation, Miscellaneous Charges and Bill Discount are not present*
- **Outcome:** Not saved.
- **Solution:** Make Sub Total equal Net Total, or enter the charge / discount / TCS that explains the difference.


### Currency rate cannot be 0

- **Type:** Error
- **Action:** Save, Save And Approve
- **When:** Document has currency and non-credit pay mode; `currencyRate` is missing or zero while computing bill balance in foreign currency.
- **Example message:** *Currency rate cannot be 0*
- **Outcome:** Not saved.
- **Solution:** Enter a currency exchange rate greater than zero.


### Inventoryless creditNote / debitNote not allowed for this user

- **Type:** Error
- **Action:** Save, Save And Approve
- **When:** User setting `disableInventorylessCrnDen` is on and the document is inventory-less credit note or debit note.
- **Example message:** *Inventoryless creditNote entries are not allowed for this user.* or *Inventoryless debitNote entries are not allowed for this user.*
- **Outcome:** Not saved.
- **Solution:** Turn off inventory-less on the document, or use a user without that restriction.


### Foc sale is not allowed for item in line

- **Type:** Error
- **Action:** Save, Save And Approve (sale documents that run `processLines` with sale FOC checks)
- **When:** Company sale setting disallows FOC, or user setting `preventFocSale` is on, and a line has `price == 0`.
- **Example message:** *Foc sale is not allowed for item in line 2*
- **Outcome:** Not saved.
- **Solution:** Enter a non-zero price, or enable Allow FOC sale / clear the user block.


### Quality Inspection is Pending

- **Type:** Error
- **Action:** Approve, Save And Approve
- **When:** Document `qcStatus == 1` (pending) on a quality-inspection-enabled type (delivery note, receipt note, inventory transfer, issue / receipt from production).
- **Example message:** *Quality Inspection is Pending*
- **Outcome:** Not approved.
- **Solution:** Complete quality inspection so QC is no longer pending, then approve.


### Tax Required for all items

- **Type:** Error
- **Action:** Approve, Save And Approve
- **When:** Sale Type or Purchase Type has `isTaxRequired` and at least one line has no taxes.
- **Example message:** *Tax Required for all items *
- **Outcome:** Not approved.
- **Solution:** Add tax on every item line.


### LPO number is required

- **Type:** Error
- **Action:** Approve, Save And Approve
- **When:** Sale Type required fields include `customerPurchaseOrderId` and LPO is empty on Sale Invoice or Sale Order.
- **Example message:** *LPO number is required.*
- **Outcome:** Not approved.
- **Solution:** Enter the customer LPO / purchase order number.


### fields required

- **Type:** Error
- **Action:** Approve, Save And Approve
- **When:** Sale Type `requiredFields` lists header fields (for example `routeId`) that are empty on the document.
- **Example message:** *fields required - routeId* or *fields required - routeId ,employeeId*
- **Outcome:** Not approved.
- **Solution:** Fill each field named in the message.


### Missing billNumber

- **Type:** Error
- **Action:** Approve, Save And Approve
- **When:** After approve processing, the document type is in `billNumberTransactions` and `billNumber` is still empty.
- **Example message:** *Missing billNumber*
- **Outcome:** Approve fails (posting may roll back depending on transaction handling).
- **Solution:** Configure auto-generate / number settings for the document type, ensure a bill number is assigned, approve again.


### Same bill number exist

- **Type:** Error
- **Action:** Approve (bill number generation) — Sale Invoice when `preventDuplicateInvoiceNo` is on; also purchase bill number duplicate check when enabled
- **When:** Another open / approved document already uses the same `billNumber`.
- **Example message:** *Same bill number SI-1042 exist*
- **Outcome:** Not approved / number not assigned.
- **Solution:** Use a unique bill number or cancel the conflicting document.


### Same LPO number exist

- **Type:** Error
- **Action:** Approve (bill number path) on Sale Order / Sale Invoice
- **When:** Sale setting `preventDuplicateCustomerPOId` is on and another open document has the same `customerPurchaseOrderId`.
- **Example message:** *Same LPO number CUST-PO-88 exist*
- **Outcome:** Not approved.
- **Solution:** Change the LPO or resolve the duplicate document.


### Purchase invoice exist with same supplier invoice number

- **Type:** Error
- **Action:** Approve (bill number path) on Purchase Invoice
- **When:** Purchase setting `preventDuplicateSupplierReferenceNo` is on and another non-draft invoice for the same supplier has the same `invoiceReferenceNumber` (optionally scoped to financial year).
- **Example message:** *Purchase invoice exist with same supplier invoice number for this supplier*
- **Outcome:** Not approved.
- **Solution:** Change the supplier invoice number or resolve the earlier invoice.


### Edit not allowed in the current status

- **Type:** Error
- **Action:** Edit / update
- **When:** Document status is not editable (not Draft or For Revisal).
- **Example message:** *Edit not allowed in the current status*
- **Outcome:** Update rejected (`INVALID_STATUS_UPDATE`).
- **Solution:** Cancel and reverse, or use the revise / amend path allowed for that document.


### Invalid status (bulk delete)

- **Type:** Error
- **Action:** Delete (bulk)
- **When:** One of the selected ids is not status Draft (`0`) or For Revisal (`2`).
- **Example message:** *Invalid status*
- **Outcome:** Delete rejected.
- **Solution:** Delete only Draft or For Revisal rows.


### Delete prevented

- **Type:** Error
- **Action:** Delete
- **When:** Transaction Preference auto-generates bill number on create for this model.
- **Example message:** *Delete prevented..*
- **Outcome:** Not deleted.
- **Solution:** Cancel the document instead, or turn off auto-generate-on-create for that type.


### Status update failed

- **Type:** Error
- **Action:** Approve, Cancel, Close, Lost, Resend, and other status actions
- **When:** `validateStatus` fails and the API returns `INVALID_STATUS_UPDATE` without a custom message (default from `errors.coffee`).
- **Example message:** *Status update failed*
- **Outcome:** Status unchanged.
- **Solution:** Refresh; use an action allowed for the current status.


### Resource / document not found

- **Type:** Error
- **Action:** Any get / approve / status action on a missing id
- **When:** Record does not exist. Approve may return a model-specific string.
- **Example message:** *The resource not found* or *saleInvoice(123) not found*
- **Outcome:** Action rejected.
- **Solution:** Refresh the list; open a document that still exists.


### Multiple Cancel Request Not Allowed

- **Type:** Error (rate limit)
- **Action:** Cancel
- **When:** Cancel clicked again within about two minutes (Redis lock).
- **Example message:** *Multiple Cancel Request Not Allowed*
- **Outcome:** Second cancel rejected.
- **Solution:** Wait and refresh; check whether the first cancel already completed.


### Transaction date must be greater than delivery / receipt note date

- **Type:** Error
- **Action:** Save / approve paths that compare invoice date to linked inventory notes
- **When:** Document date is before the earliest linked delivery note or receipt note date.
- **Example message:** *Transaction date must be greater than the delivery note date.* or *Transaction date must be greater than the receipt note date.*
- **Outcome:** Not saved / not approved.
- **Solution:** Set the document date on or after the linked note date.


### Invalid note type on comparing

- **Type:** Error
- **Action:** Compare linked delivery / receipt notes (return / mismatch flows)
- **When:** The compare helper is called with a note type that is neither `deliveryNote` nor `receiptNote`.
- **Example message:** *Invalid note type on comparing*
- **Outcome:** Compare fails; action rejected.
- **Solution:** Relink valid delivery or receipt notes and retry.


### Inventory Not Found for Item (approve / cancel rewrite)

- **Type:** Error
- **Action:** Approve, Save And Approve, Cancel
- **When:** Stock posting returns `INVENTORY_NOT_FOUND`; transaction controller rewrites `error.message` using the matching line’s item name, item id, and line number.
- **Example message:** *Inventory Not Found for Item <b>Widget ( ItemId 1160 )</b> in line 2* or *Inventory Not Found for <b> itemId 1160 </b> in line 2*
- **Outcome:** Not approved / not cancelled.
- **Solution:** Ensure stock exists for that item at the correct center, batch, bin, and variant; fix the line; retry.


### Cannot delete this … due to reference found in …

- **Type:** Error
- **Action:** Delete (CRUD masters and any model using `formatFkDeleteError`)
- **When:** Database foreign-key constraint on destroy; message includes model label, referencing table, and optional record names.
- **Example message:** *Cannot delete this customer due to reference found in saleInvoice: Acme Corp* or *Cannot delete this item due to reference found in saleInvoiceItem*
- **Outcome:** Not deleted.
- **Solution:** Remove or reassign referencing documents, then delete.


### DB transaction missing

- **Type:** Error (server)
- **Action:** Delete / cascading CRUD operations that require `db.transaction`
- **When:** Operation runs without an open database transaction.
- **Example message:** *DB transaction missing*
- **Outcome:** Operation fails.
- **Solution:** Retry the action. Contact support if it repeats.


### Lost reason is required

- **Type:** Error
- **Action:** Mark Lost
- **When:** Lost reason is empty or whitespace.
- **Example message:** *Lost reason is required*
- **Outcome:** Status stays unchanged.
- **Solution:** Enter a lost reason, then Mark Lost again.


### Secondary status missing

- **Type:** Error
- **Action:** Secondary status update
- **When:** `secondaryStatusId` is not provided in the update options.
- **Example message:** *Secondary status missing.*
- **Outcome:** Secondary status not applied.
- **Solution:** Select a secondary status and save.


### Multi level approval is required (pointer)

- **Type:** Error / workflow
- **Action:** Approve, Save And Approve
- **When:** Document has `approvalTemplateId` and is still Draft.
- **Example message:** *Multi level approval is required*
- **Outcome:** Direct approve blocked.
- **Solution:** Use Send Request. Full stage-action catalog: <a href="#/features/multiapproval?id=action-errors">Multi Approval — Action error messages</a>.


### Serial number messages (pointer)

- **Type:** Error
- **Action:** Save, Approve
- **When:** Serial add / select validation on shared transaction helpers.
- **Example message:** *Duplicate Serial Number found* …; *SerialNumber … already exist*; *SerialNumber … not found* (and document-level *Serial Number missing* / quantity mismatch on specific controllers)
- **Outcome:** Not saved / not approved.
- **Solution:** See <a href="#/inventory/serial-numbers">Serial Numbers</a>.

</section>
