- Not yet. The plane is settling. Wait and retry.
- Wrong shape. Your call or your key is wrong. Change something and retry.
- Refused. Sanning is declining on purpose. Read the reason.
Not yet
These resolve on their own. Retry rather than debugging.no stamped records for agent claims-triage in ...
no stamped records for agent claims-triage in ...
N record(s) in ... are anchored and retained but not yet stamped
N record(s) in ... are anchored and retained but not yet stamped
--allow-unstamped, and say in the cover note how
many were left out. See The witness.the envelope route returned no envelope
the envelope route returned no envelope
Wrong shape
SCOPE_NOT_ALLOWED, required: anchor:read
SCOPE_NOT_ALLOWED, required: anchor:read
anchor:read, so the refusal means your
organization is not enabled for that route. Your records are intact and anchored;
the credential cannot read them back.If it carries no sentence, only required and the key’s own keyScopes, the key
itself genuinely lacks the scope. This is the case for a key an operator minted
through POST /api/v1/admin/keys, which is not bound to the two-scope-set rule
POST /api/v1/user/keys enforces. Check what the key was minted with.See API keys and scopes.--logs was not given, so this verb cannot read your log store
--logs was not given, so this verb cannot read your log store
--logs is required in practice. The command reads your record objects to work out
which events belong to this agent, because a minimum-disclosure envelope does not
carry that name.Point it at your store root, the directory holding content/ and records/.reading an s3:// log store needs SANNING_S3_ENDPOINT, ...
reading an s3:// log store needs SANNING_S3_ENDPOINT, ...
--logs accepts an s3:// URL, and reading one needs SANNING_S3_ENDPOINT,
SANNING_S3_ACCESS_KEY_ID and SANNING_S3_SECRET_ACCESS_KEY in the environment.
The message names the ones that are missing.There is no flag for them: a credential in argv lands in shell history. See
Keep what you anchored.bundle: missing required flag(s): --from, --to
bundle: missing required flag(s): --from, --to
--agent, --from, --to and --out
are all required.A date-only bound names a whole day. Pass a full timestamp such as
2026-09-01T09:00:00Z for a narrower window.N record(s) in ... have no record object in your log store
N record(s) in ... have no record object in your log store
the control plane does not recognize this agent
the control plane does not recognize this agent
--agent on the server, so a name that does not
match an agent on your roster stops there before bundle reads anything back. The
command prints bundle: no stamped records for agent "…" with this reason, and exits 1.Check the spelling against the console’s Agents page. --agent takes the name you
anchored under, not a display name you renamed it to later.N record(s) ... carry no context.case_id
N record(s) ... carry no context.case_id
bundle --case with SANNING_SIGNING_SEED set found records in the
window that name no case, so it cannot tell whether they belong to the case it is
declaring.Pass the case id on every record in the case when you anchor it (caseId in
TypeScript, case_id in Python), then run bundle again. See
Name the case on every record.this pack would declare itself about case ..., and N selected record(s) name N other case(s)
this pack would declare itself about case ..., and N selected record(s) name N other case(s)
bundle without --case, with SANNING_SIGNING_SEED set, found
records that name a case. A declared pack names one case, so it refuses rather than
put those records under the agent’s name.Pass --case and run the command once per case.cannot read --logs logs/: ENOENT
cannot read --logs logs/: ENOENT
logs/ directory. A pack of hand-off records has none, because no
hand-off record discloses content. Run verify without --logs.pack.zip is not valid JSON: Unexpected token 'P'
pack.zip is not valid JSON: Unexpected token 'P'
PK is the archive’s own signature.Extract it and point at bundle.json inside. See
Verify at the command line.Refused
the signing key is not enrolled in this organization
the signing key is not enrolled in this organization
AGENT_LABEL_REVOKED
AGENT_LABEL_REVOKED
AGENT_ID_KEY_MISMATCH
AGENT_ID_KEY_MISMATCH
agent_id than the one in the request, and a key
bound to one agent 403s for every other one.A key you create in the console is never bound to an agent, so this appears only on a
key Sanning bound for you. Use an ordinary key from Settings, API keys, which
covers your whole fleet.AGENT_CHALLENGE_INVALID
AGENT_CHALLENGE_INVALID
AGENT_POP_FAILED
AGENT_POP_FAILED
AGENT_REKEY_REQUIRED
AGENT_REKEY_REQUIRED
SIGNING_KEY_ALREADY_ENROLLED
SIGNING_KEY_ALREADY_ENROLLED
SIGNING_KEY_PREVIOUSLY_REVOKED instead. The message names no other organization.
Generate a new key where the agent runs and enroll that one instead. Nothing was
changed.SIGNING_KEY_PREVIOUSLY_REVOKED
SIGNING_KEY_PREVIOUSLY_REVOKED
SIGNING_KEY_ALREADY_ENROLLED, and so is a key belonging to an organization
deleted since. Generate a new key where the agent runs and enroll that one
instead. Nothing was changed.SIGNING_KEY_NOT_REVOKED
SIGNING_KEY_NOT_REVOKED
a store failure means no anchor
a store failure means no anchor
Verdicts are not errors
partial and undetermined are answers, not failures. A check that could not run is
reported as not run. See What a verdict means.