Not found covers both cases
A tool reads an event only if your own access admits it and the organization you selected was granted it. An event outside that scope returns the same not-found error as one that does not exist. This is on purpose, so you never learn whether another organization’s event exists. Don’t treat the error as proof that an id is invalid. It means only that you cannot read the event. A tool returning fewer events than you expect is usually access, not a bug. Enterprise events are private to their creator and their approvers by default.Refused confirms
confirm_change refuses in these cases. Each message is exact.
A refused write or confirm means nothing was written, so it is always safe to
correct the call and retry without first checking what partially landed. The
one exception is “Record unreachable”. Confirm again with the same token, which
never runs the change twice.
Every call is recorded
Nowadays records every tool call: who made it, from which MCP client, in which organization, with which arguments, and how it ended, including refused and invalid calls. An approval token is never recorded.Time limits
Each tool that works on sourcing, venues, or proposals has its own time limit, from 5 to 30 seconds. A read or a prepare that runs longer returns the timed-out error, and nothing was prepared or changed. Retry it once. If it times out again, narrow the call, for example with fewer cities or avenue
filter.
shortlist_proposal saves at once, so a save can still land after its time
limit. It returns the “may have saved” error instead. Read the event back with
get_proposals before you call it again.