Restate Documentation Audit
Restate's docs are broad, fresh, and unusually agent-friendly (llms.txt, llms-full.txt, per-page .md exports, an OpenAPI admin spec, even an MCP server card) — but the retry-policy story contradicts itself across three surfaces, the error-code reference links to pages that no longer exist, and the raw .md exports that agents are told to consume are polluted with MDX implementation noise.
1. Default retry behavior contradicts itself across SDK pages, the error-handling guide, and the server-config reference (critical)
Problem: Four SDK error-handling pages (TypeScript, Java, Python, Go — e.g. /develop/ts/error-handling) all state verbatim: "By default, Restate does infinite retries with an exponential backoff strategy." The error-handling guide (/guides/error-handling) says the opposite: "The default retry policy will retry the invocation a limited number of times, after which the invocation will be paused if no progress can be made." The server-config reference (/references/server-config) confirms the limited default: max-attempts default 70, on-max-attempts default pause. The guide then muddies it further with "When a retry policy is unset, Restate by default will retry undefinitely, alike setting max-attempts = "unlimited"" — directly after showing that the default policy pauses after 70 attempts.
Location: /develop/ts/error-handling (and /develop/java, /develop/python, /develop/go equivalents), /guides/error-handling, /references/server-config
Consequence: Retry semantics are the core promise of a durable-execution platform. A developer (or coding agent) reading only the SDK page will design alerting and dead-letter handling around "infinite retries" and never expect invocations to silently pause after ~70 attempts; one reading the guide can't tell whether an unconfigured server retries forever or pauses. Agents consuming llms-full.txt see both claims with equal confidence and will emit whichever they ingested last.
The fix: Pick one canonical statement of the default (70 attempts with exponential backoff, then pause) and propagate it to all four SDK error-handling pages; rewrite or delete the "retry undefinitely" sentence in the guide (it also contains two typos: "undefinitely", "alike setting"), and state explicitly which server versions ship which default.
2. Error Codes reference links to pages that 404 (significant)
Problem: The META0009 entry on /references/errors says "Please look at the Kafka documentation (for TypeScript and Java)". Both URLs return hard 404s with no redirect (verified by HTTP probe); the current Kafka page lives at /services/invocation/kafka. The same reference also points readers hitting non-determinism errors to , which redirects to /tour/microservice-orchestration — a page with no "journaling" section, so the anchor silently evaporates.