SI Back Office

Troubleshooting guide · updated 2026-10-11

Invoice creation timed out: reconcile the unknown result before retrying

Distinguish a confirmed rejected creation from a lost response after a possible write, and define zero, one and conflicting-match dispositions before a replay.

Unknown is a separate outcome

A timeout can occur before a write or after a write whose response was lost. Preserve the minimal synthetic source reference, target organisation, attempted operation and result state. Do not replace unknown with failed-and-empty merely because the workflow is red. RFC 9110 explains why automatic retries of non-idempotent requests need more evidence; it does not promise a safe replay facility in Xero, QuickBooks or Zapier.

  • A new attempt identifier is not a new business invoice.
  • A human-readable invoice number alone is not proven globally unique.
  • Do not infer that switching a creation request to PUT makes the business operation safe.

Specify reconciliation before another create

Under an explicitly authored test policy, one matching target draft with the agreed source reference and expected contents means retain that target, not create another. More than one match, or one match with different contents, is an exception for the authorised finance owner. Zero visible matches is not automatically permission to retry: delayed visibility or another in-flight attempt can still exist. The implementer must establish the actual vendor's lookup, duplicate-prevention and concurrency semantics separately.

  • Keep organisation and immutable source-operation identity together.
  • Record confirmed rejected, confirmed created and unknown separately.
  • A read-then-create sequence alone is not concurrency protection.

Acceptance includes the lost-response branch

An isolated synthetic specification simulates creation followed by loss of the response. Its repeated operation must retain one draft or enter the approved unresolved state, never silently create a second draft. Also specify a confirmed rejection and conflicting-target case. The related matrix provides concrete identities and expected dispositions. No API, replay, target lookup, concurrent worker or invoice has been run for this draft.

  • Inspect target count and identity beside the workflow result.
  • Never bulk replay historical invoices as diagnosis.
  • Deleting a duplicate or changing a posted document is a separate financial action.

The £145 offer is a mapping route, not an idempotency redesign

An authorised operator may investigate existing run and draft state using vendor support, with no new paid integration required. The existing £145 mapping repair includes an agreed repeated-input check on one disposable row, not a new reconciliation store, queue, retry architecture or historical cleanup. Enquire there only for the eligible five-field mapping problem with a working trigger and a safe draft test; unknown-state recovery or missing duplicate safeguards need separately agreed scope. Send an invented operation identity and expected result initially, not real invoice exports, source code or keys. The price remains untested; agreement precedes access and payment follows checks and sign-off.

Sources and limits