error is either a string or an object with code, message and retryable. Branch on code. Never branch on message, which is written for a person and changes. On the statuses that carry it, retry_after gives the number of seconds to wait.
The name, or a name above it, is held elsewhere or on hold.
Pick a name you hold outright.
Too much for one answer
Code
Status
Condition
What to do
RESULT_TOO_LARGE
413
The answer does not fit in one response.
Narrow the window, lower limit, or read by kind.
Slow down
Code
Status
Condition
What to do
AGENT_LIMIT, IDENTITY_LIMIT, TENANT_LIMIT
429
The account's allowance is used up.
Sign in to see the account, or ask Whisper to widen it.
DOMAIN_LIMIT, BYOD_CAPACITY
429
The account cannot take another name right now.
Ask Whisper.
ACTION_LIMIT
429
Too many actions in flight.
Wait for retry_after seconds, then send it again.
Try again
Code
Status
Condition
STORE_UNAVAILABLE
503
The store behind the plane did not answer.
PUBLISH_FAILED
503
The change did not reach DNS.
BACKEND_BUSY, READ_BUSY
503
The plane could not take the call right now.
PRIMARY_UNREACHABLE
503
The authoritative side did not answer.
GRAPH_BUSY
503
The graph could not answer in time.
Treat any 503 as worth sending again, and honour retry_after. On a write, read the state back with list or agent before retrying, so you do not make a second allocation.
Errors from the endpoint itself
These come from the request rather than the operation, so there is no op row to read.
Code
Status
Condition
What to do
no_query
400
The body carried no statement.
Send a query field, or a q form field.
bad_request
400
The body could not be read.
Check the JSON.
unknown_op
400
The statement named an operation the endpoint does not serve.
Send reads only. Changes go through whisper.agents.
rate_limited
429
Requests arrived faster than the endpoint took them.
Wait for the interval the response gives, then send it again.
graph_unavailable
502
A forwarded graph read could not be served.
Retry.
(no code)
504
A forwarded graph read did not come back.
Narrow the statement, then retry.
Malformed Cypher
A statement the parser cannot read never reaches an operation, so it does not come back in this envelope. It comes back as a problem document instead, described in Errors.