Most problems can be fixed by your AI once it knows what to look for. Find your problem below and copy the prompt. Each one points your AI at the part of the spec that explains it.
My app failed to build
Section titled “My app failed to build”My COHO hosted app failed to build (provisioning state: failed). Find out why from theCOHO MCP tools or the Store, then check the zip: it must include a Dockerfile, theDockerfile path I gave must be right, dependency files the Dockerfile needs (such as alockfile) must be included, and the app must listen on the port in the PORT environmentvariable. Fix what's wrong, then update the hosted app with a new zip (show me the preview first).Connecting in the Store fails
Section titled “Connecting in the Store fails”Connecting my Atrium app in the COHO Store fails and rolls back. Check my setup handleragainst section 3.2 of the spec: it must read the bootstrap secret from ATRIUM_SETUP_SECRET(COHO provides this value; on COHO Hosting it's injected automatically, so never hard-codeor invent one), verify lifecycle.setup with it before storing anything, never usedata.signingSecret to check setup, save the apiKey and signingSecret against the connectionreference, and return HTTP 2xx. A 404 or any other error on setup makes the connect fail.My app shows as degraded or paused
Section titled “My app shows as degraded or paused”The COHO Store shows my Atrium app as degraded or paused. Check the health check againstsection 4 of the spec: GET /health must return 2xx with an empty body or {"ok": true}.After three failed checks in a row COHO pauses events and schedules until one succeeds.Find out why it's failing and fix it.Events or schedules never arrive
Section titled “Events or schedules never arrive”My Atrium app isn't receiving events or schedules from COHO. Check: is the app healthy(section 4)? Does it reply with HTTP 2xx quickly and do slow work afterwards (section 3.1)?Does signature verification pass (section 3.1.1 test vectors)? Is it handling the rightevent key (section 3.4)? Use Run test in the Store to send a test event, then check the logs.Messages from COHO are rejected (“signature doesn’t match”)
Section titled “Messages from COHO are rejected (“signature doesn’t match”)”My Atrium app rejects COHO's signed messages. Check the verifier against section 3.1 ofthe spec: sign the raw body bytes exactly as received (don't re-serialise JSON), includemethod, path-and-query and connection reference, compare in constant time, and allow thetimestamp window (30s future, 300s past). Prove it passes all three test vectors in 3.1.1.My panel is blank or won’t open
Section titled “My panel is blank or won’t open”My Atrium app's panel (quick view) is blank or won't load inside COHO. Check section 6 ofthe spec: the Content-Security-Policy frame-ancestors header must list COHO's origins(not *), and the signed launch URL must be verified like other signed GETs. For a hostedapp with a browser UI, check config.browserBaseUrl in the manifest.The settings form doesn’t show or save
Section titled “The settings form doesn’t show or save”My app's settings form in the COHO Store doesn't load or save. Check the light configroutes against section 5.3 of the spec: GET schema, GET values and PUT values, all signedwith the connection signing secret, and the schema must follow section 5.3.1.COHO’s API says “403 Forbidden”
Section titled “COHO’s API says “403 Forbidden””My Atrium app gets HTTP 403 from the COHO Public API. Check section 8 of the spec: is thecapability declared in requestedCapabilities? High-risk areas (for example conversationsor rentPayments) need a manager to approve them in the Store. Tell me which capability ismissing and what I need to ask a manager to approve.COHO’s API says “429 Too Many Requests”
Section titled “COHO’s API says “429 Too Many Requests””My Atrium app gets HTTP 429 from the COHO Public API. The limit is 100 requests a minute(section 7 of the spec). Add retries with backoff and reduce how often the app calls the API.Still stuck? Email COHO support
Section titled “Still stuck? Email COHO support”Email support@coho.life. Copy this template so we have what we need to help:
Subject: Atrium app help: [app name]
Organisation: [your COHO organisation name]App name: [app name]Hosted by COHO or self-hosted: [hosted / self-hosted]Provisioning state (if hosted): [e.g. ready / failed]AI tool used: [e.g. Cursor, Claude Code]
What I'm trying to do:[one or two sentences]
What happens instead:[what you see, including any error message or Store log entry]
What I've tried:[the prompts or fixes you've tried]When to bring in a developer
Section titled “When to bring in a developer”AI tools can get you a long way, but bring in a developer when:
- you want to list your app publicly in the COHO Store. Public listings must pass a quality check first.
- your app handles sensitive data or high-risk areas, such as messaging tenants or rent payments.
- it needs to work with your other systems, beyond COHO.
- you’re stuck in a loop, where your AI keeps making the same fix and it keeps failing.
The developer guide has the full technical detail a developer will need.