A terminal state is one you cannot retry out of. Recognising them matters because the failure mode worth designing against is an AI looping on something that will never succeed.
Expired artifact
This applies to an artifact made by an AI that was never connected. A connected AI writes into the team, where nothing expires.
What happened. Nobody took ownership of an anonymous artifact within 24 hours of its creation. The content is removed and the link stops working.
What you see. "This has expired" on the link.
What the AI sees. A terminal refusal when it checks.
The fix. It still has the source, so ask for a fresh link:
That AgentGrid.io link expired. Please re-upload it and send me a fresh link.
Better still, connect it. Work from a connected AI lands in your team directly, with nothing to expire. See How agents connect.
Claimed without granting agent access
What happened. The human claimed the artifact but chose not to connect the AI. The work is theirs; the AI stays read-only.
What the AI sees. The same terminal answer as an expired window. It cannot tell the difference, and should not try.
The fix. Connect it another way: the connector in Claude, the plug-in in ChatGPT, npx @animaapp/cli@latest login for a coding or autonomous agent, or Share → Invite an agent. Nothing is lost but the shortcut.
Revoked agent
What happened. Someone removed the agent in Share → Manage access. Enforcement is per-request, so it stops on its very next one.
What the AI sees. A refusal saying its access was revoked by the team, with instructions not to retry and to tell its human they can re-invite it.
The fix. A human re-invites it from Share → Invite an agent, then copies the link and gives it to the agent. It connects as a new approval, with whatever capabilities were chosen this time.
Capabilities that were not granted
What happened. The agent is trying to do something outside what it holds — sharing or publishing when it only has read and write.
What the AI sees. A refusal. It should relay that rather than working around it, since there is no path for an agent to widen its own access.
The fix. If it genuinely needs more, remove it and invite it again with the capabilities you want. They cannot be edited in place. See Revoke an agent.
Deleted artifact
What happened. Someone deleted it. The artifact, its content, and its history are gone, and support cannot restore it.
What the AI sees. An error the next time it looks for that artifact. It should stop and say so.
The fix. None. This is why exporting before deleting is worth the ten seconds, and why restoring a version is the right tool for undoing a change.
The rule for agents
Every terminal state carries text meant to be relayed. When an AI hits one, it should stop, tell its human in plain language, include anything the response says to pass on, and wait. Retrying is not persistence here; it is noise.