
A Signed Webhook Is Not Permission to Run the AI Workflow Again
Separate signature checks, durable receipt and permission to act. A practical webhook admission design keeps repeated deliveries from becoming fresh AI workflow requests.
Insights, tutorials, and updates from the ZharfAI team
Learn about AI technologies and implementations

Separate signature checks, durable receipt and permission to act. A practical webhook admission design keeps repeated deliveries from becoming fresh AI workflow requests.

Repeated JSON keys can disappear before validation begins. Reject ambiguity at the raw-input boundary and keep reviewers and executing tools on the same accepted data.

Decide when streamed AI output may become a final answer by separating byte decoding, event boundaries, stop reasons and application acceptance.

Correct OCR text can still point to the wrong evidence. Preserve page identity, units and image transformations before showing an exact document citation.

Passing tests do not establish that they can detect a defect. Use an isolated code mutation, a boundary example and a requirement-based assertion to assess the evidence before merging.

Two different identifiers can become the same value before an AI model sees them. Preserve their type through imports, detect collisions and know when to recover the original.

A lower p95 does not always mean a faster assistant. Learn how to pool latency measurements, expose traffic-mix changes and judge the evidence before a release.

Displaying a remote image is a network action. Separate text, links and media so an AI answer cannot quietly authorize an outbound request before the reader clicks.

A new test row is not necessarily a new customer. Choose customer and time boundaries that match deployment, then check overlap, label timing and score weights.

A checkpoint loading error is a trust decision. Learn when to request data-only weights, review a narrow exception, isolate conversion, or reject the file.

Upload size does not bound parsing work. Set shared limits for expanded bytes, images and attachments, and keep partial extraction from becoming a supposedly complete AI answer.

A blank is not an observed zero. Preserve missing-value reasons, report the denominator you actually measured, and keep model estimates separate from recorded evidence.