---
title: "AI agent no-work receipts: empty queue or broken run."
description: "Make your agent prove what it inspected. Record counts and checkpoints, test empty queues and failed credentials, and monitor missing receipts."
canonical: "https://scalewithsearch.com/articles/ai-agent-no-work-receipt"
date: "2026-08-19"
modified: "2026-09-19"
---
## Site navigation

- [Scale With Search](https://scalewithsearch.com/)
- Real estate
  - Real estate
    - [Real estate](https://scalewithsearch.com/for/real-estate)
- Work
  - Start here
    - [Send your brief](https://scalewithsearch.com/work#send-your-brief)
    - [Prepare your six-question brief](https://scalewithsearch.com/work#prepare-your-six-question-brief)
  - Build
    - [Site build, content library with SEO, signal desk](https://scalewithsearch.com/work)
- For your business
  - Trades and home services
    - [Auto body and collision shops](https://scalewithsearch.com/for/auto-body-and-collision-shops)
    - [Foundation and home repair contractors](https://scalewithsearch.com/for/foundation-and-home-repair)
    - [Garage door and fencing contractors](https://scalewithsearch.com/for/garage-door-and-fencing-contractors)
    - [HVAC contractors](https://scalewithsearch.com/for/hvac-contractors)
    - [Janitorial and commercial cleaning companies](https://scalewithsearch.com/for/janitorial-and-commercial-cleaning)
    - [Locksmiths](https://scalewithsearch.com/for/locksmiths)
    - [Moving companies](https://scalewithsearch.com/for/moving-companies)
    - [Pest control companies](https://scalewithsearch.com/for/pest-control-companies)
    - [Plumbing and electrical contractors](https://scalewithsearch.com/for/plumbing-and-electrical-contractors)
    - [Restoration and water or fire damage companies](https://scalewithsearch.com/for/restoration-and-water-fire-damage)
    - [Roofing companies](https://scalewithsearch.com/for/roofing-companies)
    - [Towing companies](https://scalewithsearch.com/for/towing-companies)
    - [Tree services and landscaping companies](https://scalewithsearch.com/for/tree-services-and-landscaping)
    - [Solar installers](https://scalewithsearch.com/for/solar-installation)
    - [General contractors](https://scalewithsearch.com/for/general-contractors-and-construction)
    - [Paving, concrete, and flooring contractors](https://scalewithsearch.com/for/paving)
  - Practices and professional services
    - [Bookkeeping and tax practices](https://scalewithsearch.com/for/bookkeeping-and-tax-practices)
    - [Dental practices](https://scalewithsearch.com/for/dental-practices)
    - [Family and criminal defense law firms](https://scalewithsearch.com/for/family-and-criminal-defense-law-firms)
    - [Med spas and aesthetics practices](https://scalewithsearch.com/for/med-spas-and-aesthetics)
    - [Personal injury law firms](https://scalewithsearch.com/for/personal-injury-law-firms)
    - [Veterinary clinics](https://scalewithsearch.com/for/veterinary-clinics)
    - [Gyms and fitness studios](https://scalewithsearch.com/for/fitness)
    - [Therapy and outpatient health practices](https://scalewithsearch.com/for/therapy-and-outpatient-health)
    - [Medical billing companies](https://scalewithsearch.com/for/medical-billing)
    - [Insurance agencies](https://scalewithsearch.com/for/insurance-agencies)
    - [Financial advisors](https://scalewithsearch.com/for/financial-advisors)
    - [Property management companies](https://scalewithsearch.com/for/property-management)
    - [Recruiting and staffing agencies](https://scalewithsearch.com/for/recruiting-and-staffing)
    - [Architects and interior designers](https://scalewithsearch.com/for/architects-and-interior-designers)
    - [Logistics and supply chain companies](https://scalewithsearch.com/for/logistics-and-supply-chain)
  - Agencies, MSPs, and manufacturing
    - [IT and managed service providers](https://scalewithsearch.com/for/it-and-managed-service-providers)
    - [Machine shops and precision manufacturers](https://scalewithsearch.com/for/machine-shops-and-precision-manufacturing)
    - [Marketing agencies and freelancers](https://scalewithsearch.com/for/marketing-agencies-and-freelancers)
    - [SEO agencies and consultants](https://scalewithsearch.com/for/seo-agencies-and-consultants)
    - [Small manufacturers and fabricators](https://scalewithsearch.com/for/small-manufacturers-and-fabricators)
  - Restaurants, shops, studios, and nonprofits
    - [Restaurants and hospitality businesses](https://scalewithsearch.com/for/restaurants-and-hospitality)
    - [Retail stores and ecommerce sellers](https://scalewithsearch.com/for/retail-and-ecommerce)
    - [Photographers, event planners, and travel agents](https://scalewithsearch.com/for/photographers)
    - [Churches and nonprofits](https://scalewithsearch.com/for/churches-and-nonprofits)
  - [All industries](https://scalewithsearch.com/for/)
- Learn
  - For your office
    - [Office job guides](https://scalewithsearch.com/guides/)
    - [Browser calculators](https://scalewithsearch.com/tools/)
  - Start here
    - [How it works](https://scalewithsearch.com/how-it-works)
    - [Free Starter Kit](https://scalewithsearch.com/kit/business-memory-starter-kit.zip)
    - [Synthetic specimen](https://scalewithsearch.com/specimen/working-session-specimen.zip)
  - Guides
    - [The Complete Guide to Business Memory for AI Agents](https://scalewithsearch.com/articles/business-memory-for-ai-agents-guide)
    - [The Complete Small-Business Guide to AI Agent Governance](https://scalewithsearch.com/articles/ai-agent-governance-guide-small-business)
    - [The Complete Guide to Leaving Vendor AI Memory](https://scalewithsearch.com/articles/leaving-vendor-ai-memory-guide)
  - Articles by cluster
    - [Business memory](https://scalewithsearch.com/articles/business-memory-for-ai-agents-guide)
    - [Agent governance](https://scalewithsearch.com/articles/ai-agent-governance-guide-small-business)
    - [Migration and ownership](https://scalewithsearch.com/articles/leaving-vendor-ai-memory-guide)
  - For machines
    - [llms.txt](https://scalewithsearch.com/llms.txt)
    - [llms-full.txt](https://scalewithsearch.com/llms-full.txt)
    - [Machine view](https://scalewithsearch.com/?view=machine)
- Company
  - Evidence
    - [Proof](https://scalewithsearch.com/proof)
  - Company
    - [About](https://scalewithsearch.com/about)

# No Work or Broken Run? Make the AI Agent Prove Which One.

A daily lead sweep sends no report. The owner cannot tell whether there were zero qualified leads, the credential expired, the scheduler never started, or the agent crashed after reading half the queue.

Silence is not a terminal state.

Every scheduled or requested run should end with an artifact, an explicit no-work receipt, a blocked receipt, a failure receipt, or an uncertain-state receipt. Each state must name what the workflow inspected and what should happen next.

## Define the terminal states

Use a small business vocabulary:

**Completed** means the job inspected its full defined scope, produced the required output, passed its checks, and stopped at the approved boundary.

**No work** means the job successfully inspected the full eligible scope and found zero items that met the deterministic criteria.

**Blocked** means the job stopped safely because a required input, permission, identity, approval, or decision was missing.

**Failed** means an expected operation did not complete, such as authentication, parsing, retrieval, validation, or writing the receipt.

**Uncertain** means an external effect may have committed but the workflow cannot prove the resulting state.

These are business states. They do not need to replace the observability statuses used by the underlying platform.

OpenTelemetry spans can record status, attributes, events, and exceptions. Use that telemetry for diagnosis. Keep the buyer-facing run state in the receipt so the business outcome remains inspectable. [OpenTelemetry: Tracing API](https://opentelemetry.io/docs/specs/otel/trace/api/)

## A no-work receipt proves inspection

"Nothing found" is insufficient.

The receipt should record:

- job and run ID;
- start and end time;
- requested time window;
- source identifiers;
- source versions or query checkpoints;
- eligible records inspected;
- suppressed or duplicate records;
- qualifying records;
- deterministic filters applied;
- output count;
- final state;
- next scheduled check.

No work is valid only after complete inspection. If the credential failed before the query, the state is failed or blocked, not no work.

The [agent run receipt template](/articles/ai-agent-run-receipt-template) gives the broader schema. This article focuses on the empty-versus-broken distinction.

The reason [a receipt is part of the output](/articles/receipt-is-part-of-the-output) is practical. A buyer needs evidence on the quiet days too. No visible artifact should never mean no accountable result.

## A failure receipt names the failed checkpoint

A failure receipt should state which stage failed and which stages completed. For turning a failed checkpoint into a recovery drill, read [AI Agent Rollback Plan: Recovery Checks and Drill.](/articles/ai-agent-rollback-plan)

Use checkpoints such as:

```text
started -> authenticated -> queried -> normalized -> filtered -> written -> verified
```

If authentication fails, inspected count is unknown. If filtering fails after 200 records are read, record the input count and state that qualification did not complete.

Do not report partial input as no work. Do not report a process exit as success because no exception reached the dashboard.

Record the error class and safe next action. Avoid copying secrets, tokens, or full sensitive payloads into the receipt.

## Keep counts, time windows, and sources together

Counts without scope mislead.

"Zero leads" means little without the CRM, list, pipeline stage, time window, and suppression rules that produced zero.

Record query parameters or a stable query reference. Record pagination completion. Record the final cursor or checkpoint.

For a recurring job, compare the requested window with the last successful checkpoint. This prevents a one-hour outage from turning into a permanent gap.

NIST's AI Risk Management Framework calls for ongoing monitoring, defined roles, testing, incident identification, and documented risk processes. The framework is voluntary. Its operating lesson applies here: each abnormal state needs an owner and review path. [NIST AI RMF Core](https://airc.nist.gov/airmf-resources/airmf/5-sec-core/)

## Inspect the four receipt examples

These four independent objects use JSON Lines (one receipt per line), not one JSON document.

```jsonl
{"run_id":"LEADS-101","status":"completed","source":"crm:queue-7","window":"2026-08-18","inspected":42,"qualified":3,"output":"drafts/LEADS-101.md","checkpoint":"verified","next_action":"review drafts"}
{"run_id":"LEADS-102","status":"no_work","source":"crm:queue-7","window":"2026-08-19","inspected":39,"suppressed":39,"qualified":0,"pagination_complete":true,"checkpoint":"verified","next_action":"next scheduled run"}
{"run_id":"LEADS-103","status":"blocked","source":"crm:queue-7","window":"2026-08-20","inspected":0,"checkpoint":"identity_gate","reason":"business_id missing","next_action":"supply approved business_id"}
{"run_id":"LEADS-104","status":"failed","source":"crm:queue-7","window":"2026-08-21","inspected":null,"checkpoint":"authenticated","reason":"credential rejected","next_action":"credential owner investigates"}
```

An uncertain receipt would add the external action ID, intended object, last confirmed checkpoint, and required read-back. It should not trigger a blind retry.

## Make retries visible

Each attempt needs its own attempt ID under one logical run ID. For the duplicate-effect and retry fixture behind that receipt, read [AI Agent Idempotency: Test Retries Safely.](/articles/test-ai-agent-idempotency-and-retries)

Record the prior attempt, reason for retry, checkpoint resumed, and whether any side effect may have committed.

For read-only jobs, a retry may be safe after a transient failure. For sends, charges, bookings, or live record changes, resolve external state first.

AWS defines idempotent operations as requests that can be retried without additional side effects. Its guidance recommends a caller-provided request identifier to distinguish retries from separate intent. [AWS Builders' Library: Making retries safe with idempotent APIs](https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/)

The receipt should carry that identifier when the workflow can act externally.

## Route each state to the right owner

Completed and no-work receipts may go to an operating log or daily summary.

Blocked states go to the owner of the missing decision, identity, source, or approval.

Failed states go to the operator responsible for the broken checkpoint.

Uncertain states go to the owner who can inspect the destination and decide whether to reconcile, retry, or stop.

Do not send every state to the business owner. Routing noise recreates the same observability problem at the human layer.

## Run the empty-versus-broken acceptance test

The [build acceptance list](/articles/what-a-build-acceptance-list-contains) should include both fixtures.

Test these cases:

1. A readable queue with zero records produces `no_work`.
2. A readable queue with records that all fail filters produces `no_work` with inspected and suppressed counts.
3. An unreadable queue produces `failed`, never `no_work`.
4. An expired credential identifies the authentication checkpoint.
5. A missing business ID produces `blocked` before retrieval.
6. A pagination failure records partial inspection and `failed`.
7. A write failure after qualification preserves counts and names the failed output step.
8. A timeout after an external effect produces `uncertain` and a read-back task.
9. A retry links to the earlier attempt and keeps one logical run ID.
10. Every fixture writes a receipt even when the main output is absent.

Fail the build if any broken condition can masquerade as no work.

## Monitor missing receipts too

A receipt-writing standard does not help when the process never starts.

Use an external scheduler or health check to expect a receipt by a deadline. The monitor should know the job ID, expected cadence, and receipt path. If no receipt appears, report `missing_run` as a monitor incident.

Do not let the job monitor itself as the only proof of life. A dead process cannot report that it is dead.

Keep the monitor deterministic. It checks time, path, and expected cadence. It does not need a model to decide whether a receipt exists.

## Keep receipt writing independent

Write the receipt through a path that can survive failure in the main output writer when practical. At minimum, use a final error handler that records the last completed checkpoint.

Test a full disk, denied output path, malformed record, and logging failure. If the receipt cannot be written, the external monitor should report a missing run.

Do not let receipt failure trigger the business action again. Recovery should inspect the action ledger and destination before deciding whether the main job can retry.

Retain receipts long enough to cover the operating review, replay window, and incident needs defined for the job.

## Approval and stopping boundary

The job may inspect its allowed scope, write outputs, and write receipts. It stops before widening a query, changing suppression rules, repairing credentials, or retrying an uncertain external action without the named owner.

No-work status never authorizes an expanded search or a new data source. Failure status never authorizes credential rotation or live configuration changes.

Changing status definitions, retry policy, receipt routing, or expected cadence requires owner review and rerunning every terminal-state fixture.

## Sources

- [OpenTelemetry: Tracing API](https://opentelemetry.io/docs/specs/otel/trace/api/)
- [AWS Builders' Library: Making retries safe with idempotent APIs](https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/)
- [NIST: AI RMF Core](https://airc.nist.gov/airmf-resources/airmf/5-sec-core/)


## Questions about No Work or Broken Run? Make the AI Agent Prove Which One

### Does it sometimes encounter a fatal error and sometimes get a correct final answer?

Use distinct completed, no-work, blocked, failed, and uncertain terminal states instead of treating every empty result as success. Each receipt should identify the inspected scope, counts, time window, source checkpoints, error or stop code, and next owner.

### What does your agent do when a third-party service goes down mid-workflow?

Record a failed or uncertain state according to whether the workflow can prove an external effect occurred. Preserve the last verified checkpoint, avoid a blind retry, and route the receipt to the owner named for that state.

### Are your agents retrying more than you expect?

Make every retry visible in the run receipt with its trigger, attempt count, request identifier, checkpoint, and read-back result. A missing receipt should create its own monitoring event so silence cannot be mistaken for a successful no-work run.

## Related: Testing and Acceptance

- [AI Agent Run Receipt Template](/articles/ai-agent-run-receipt-template)
- [The Receipt Is Part of the Output](/articles/receipt-is-part-of-the-output)

----

```text
                  .|########||.                                       .|########||.                                       .|########||.
               |##||.      .||##|.                                 |##||.      .||##|.                                 |##||.      .||##|.
             |#|.              .|#|.                             |#|.              .|#|.                             |#|.              .|#|.
           |#|                    |#|                          |#|                    |#|                          |#|                    |#|
         .#|                        |#.                      .#|                        |#.                      .#|                        |#.
        .#.                          .#|                    .#.                          .#|                    .#.                          .#|
       |#.                            .#|                  |#.                            .#|                  |#.                            .#|
      |#             ......             #|                |#             ......             #|                |#             ......             #|
     .#           ||#########|           #|              .#           ||#########|           #|              .#           ||#########|           #|
    .#.         |######||######|.        .#.            .#.         |######||######|.        .#.            .#.         |######||######|.        .#.
    #.        .##|###|##|#|######|        .#            #.        .##|###|##|#|######|        .#            #.        .##|###|##|#|######|        .#
   ||        |##|#||||||||||||#||#|        ||          ||        |##|#||||||||||||#||#|        ||          ||        |##|#||||||||||||#||#|        ||
   #        |#||||||||||||||||||||#|        #.         #        |#||||||||||||||||||||#|        #.         #        |#||||||||||||||||||||#|        #.
  ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||
  #       .#||||||||||||||||||||||||#|       #        #       .#||||||||||||||||||||||||#|       #        #       .#||||||||||||||||||||||||#|       #
 ||   ....|||#||||||##|#|||#|#||##||||....|. ||      ||   ....|||#||||||##|#|||#|#||##||||....|. ||      ||   ....|||#||||||##|#|||#|#||##||||....|. ||
 #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#      #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#      #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#
 #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.     #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.     #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.
.|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||    .|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||    .|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||
||   |....  #. ....|#.      |. ...|. ....||   ||    ||   |....  #. ....|#.      |. ...|. ....||   ||    ||   |....  #. ....|#.      |. ...|. ....||   ||
#.  .||||||##||||||##||####|||||||#||||||#|   .#    #.  .||||||##||||||##||####|||||||#||||||#|   .#    #.  .||||||##||||||##||####|||||||#||||||#|   .#
#    .||####|###########################|.     #    #    .||####|###########################|.     #    #    .||####|###########################|.     #
#      .#||||||.#.|| # |. ..# #| #|||||#|      #    #      .#||||||.#.|| # |. ..# #| #|||||#|      #    #      .#||||||.#.|| # |. ..# #| #|||||#|      #
#      .#|||||| ..  |# ## |#| ...#|#|||#|      #    #      .#|||||| ..  |# ## |#| ...#|#|||#|      #    #      .#|||||| ..  |# ## |#| ...#|#|||#|      #
#      .#|||#|# .# .#| #| ##|.#..#|||||#|      #    #      .#|||#|# .# .#| #| ##|.#..#|||||#|      #    #      .#|||#|# .# .#| #| ##|.#..#|||||#|      #
#      .#||||||############|######|||||#|      #    #      .#||||||############|######|||||#|      #    #      .#||||||############|######|||||#|      #
#   |...||#||||||#||||#|#||||||#|||||#||| |.|  #    #   |...||#||||||#||||#|#||||||#|||||#||| |.|  #    #   |...||#||||||#||||#|#||||||#|||||#||| |.|  #
#. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#    #. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#    #. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#
|| |  ...||  ...##| |  #| .|. |. #####  .. .| ||    || |  ...||  ...##| |  #| .|. |. #####  .. .| ||    || |  ...||  ...##| |  #| .|. |. #####  .. .| ||
|| ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||    || ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||    || ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||
.# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.    .# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.    .# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.
 #.|||||||#############################| ||| .#      #.|||||||#############################| ||| .#      #.|||||||#############################| ||| .#
 ||       ##||#||#||||||#||#||#||#||##.      ||      ||       ##||#||#||||||#||#||#||#||##.      ||      ||       ##||#||#||||||#||#||#||#||##.      ||
  #       .#|||||||||#||#|||||||||||#|       #        #       .#|||||||||#||#|||||||||||#|       #        #       .#|||||||||#||#|||||||||||#|       #
  ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||
  .#        |#||||||||||||||||||||#|        #.        .#        |#||||||||||||||||||||#|        #.        .#        |#||||||||||||||||||||#|        #.
   ||        |#||||||||||||||||||#|        ||          ||        |#||||||||||||||||||#|        ||          ||        |#||||||||||||||||||#|        ||
    #.        .######|#|#########|        .#            #.        .######|#|#########|        .#            #.        .######|#|#########|        .#
    .#.         |#####||||#####|         .#.            .#.         |#####||||#####|         .#.            .#.         |#####||||#####|         .#.
     |#           ||########||           #.              |#           ||########||           #.              |#           ||########||           #.
      |#             ......             #|                |#             ......             #|                |#             ......             #|
       |#.                            .#|                  |#.                            .#|                  |#.                            .#|
        |#.                          .#.                    |#.                          .#.                    |#.                          .#.
         .#|                        |#.                      .#|                        |#.                      .#|                        |#.
           |#|                    |#|                          |#|                    |#|                          |#|                    |#|
            .|#|.              .|#|.                            .|#|.              .|#|.                            .|#|.              .|#|.
               |##||.      .||##|                                  |##||.      .||##|                                  |##||.      .||##|
                 .||########||.                                      .||########||.                                      .||########||.

Scale With Search  2026  [scalewithsearch.com](https://scalewithsearch.com)
```
