Skip to content

Troubleshooting

Find your symptom, check the likely cause, apply the fix. Exact product messages are quoted where they help you match what you’re seeing.

Symptom Likely cause Fix
A page headed Sign-in did not complete, with a reason under it The sign-in service refused the sign-in, and the reason says why — for example, your email address isn’t verified yet, or your organization hasn’t given you access Do what the reason asks — verify your email address, or ask your Admin for access — then click Try signing in again
Sign-in did not complete saying “Sign-in was cancelled or refused.” The sign-in was cancelled, or refused without a reason Ronja can show Click Try signing in again
A page headed Couldn’t complete sign-in saying “Make sure cookies are enabled for Ronja” Ronja couldn’t confirm the sign-in started in this browser: the browser is blocking Ronja’s cookies, or the sign-in link was opened in a different browser from the one that started it Allow cookies for Ronja’s site in your browser settings, then click Try signing in again in the browser you want to use
Couldn’t complete sign-in with any other reason Usually a temporary problem while finishing the sign-in Wait a moment, then click Try signing in again. If the same reason keeps coming back, contact your Admin
“Can’t reach Ronja — retrying…” when you come back to a tab that sat idle The tab is checking whether you’re still signed in, and can’t reach Ronja — your connection is down, or Ronja is briefly unavailable Nothing: it keeps retrying by itself and carries on as soon as Ronja answers. After a few tries a Sign in again link appears, if you’d rather sign in now
“Sign-in keeps failing.” with a Try again link Ronja started a sign-in several times within a couple of minutes and each one came straight back, so it stopped instead of trying forever Click Try again to start one more sign-in. If you land back here, contact your Admin
Symptom Likely cause Fix
Banner “Build failed” on the table page The last build errored: its SQL or Python failed, or what the table asks for can’t be produced from its input tables (a column it needs isn’t there). Usually the table has never built successfully — but see the rows below for the cases where it has Expand the banner — it explains what stopped the build, naming the missing column or table. An Admin can rebuild once the input problem is fixed — or ask Ronja to fix it in an exploration
Banner “This table can’t update: an input it reads was deleted.” One of the tables it is built from was deleted for good — on its own, or with its Feature 30 days after that Feature went to the trash. That includes a table it lists as an input but whose recipe no longer reads. The table keeps the data from its last build (the banner says which day when Ronja knows it), but no rebuild can succeed; its Inputs list shows the gone input as Deleted table. For a table that has held data, the people responsible are told; a table that never held data and stays Build failed goes to the trash after 7 days Edit the table’s recipe and its inputs together to replace or remove that input, or ask Ronja to. If nothing needs the table any more, delete it
Banner “An input this table reads is in the trash.” or “This table can’t update: an input it reads is in the trash.” One of the tables it is built from, or the Feature that table belongs to, is in the trash. Its Inputs list shows the input’s name followed by in the trash. The first banner means the table still updates for now: once the trash deletes the input for good, 30 days after it was trashed, it can’t update any more. The second means the table’s last update already failed because of it: the table keeps the data from its last build, but can’t update until the input is back Restore the input, or its Feature, from Trash; a table that had stopped goes back in the rebuild queue on its own. If the table shouldn’t read it any more, edit the table to replace or remove it instead
A build error, from Ronja or the API, saying an input table no longer exists — but the table still shows data One of the table’s input tables was deleted, or is in the trash (see the row above). A deleted input makes every rebuild from now on fail the same way, so the table is flagged as broken rather than merely stale, even though its last good data is still there to query. On the table page this shows as one of the banners above An Admin restores the input from Trash if it is still there, or edits the table’s recipe and its inputs together to point at a different input (or drop it). Restoring the input puts the table back in the rebuild queue on its own
Banner “Build failed” saying the table would read itself through its inputs — but the table still shows data The table reads itself, directly or through other tables, so every rebuild is refused the same way. Its last good data is still there to query Rebuilding won’t help. Break the loop: open the inputs of this table, or of another table on the loop, remove one that is part of the loop, and commit the change. See Builds
Banner “Build failed” saying the build ran out of memory or time and there is no larger compute to run it on The build needs more than the largest compute a table build runs on: 9 GB of memory, 2.5 GB of spill disk and 13 minutes for a table written in SQL (6 GB, 7 GB and 14 minutes for one written in Python). Rebuilding won’t help — it is not retried, and fails the same way until the table changes Ask Ronja to make the build lighter: read fewer columns, filter before joining, aggregate earlier — or split the table into smaller tables
Banner “Build failed” saying the table is larger than a build writes A table written in SQL is built as one file of at most 2.5 GB. Rebuilding won’t help Ask Ronja to split the table into smaller tables (by a date range, for example), or to narrow its SQL to fewer rows or columns
Banner “Build failed” saying its input tables hold more than a build may read A table written in SQL is built from input tables holding at most 4 GB in all, each counted at its whole size. Narrowing the SQL won’t help Ask Ronja to build it from fewer or smaller input tables, splitting any one input over 4 GB into smaller tables
Banner “Build failed” saying the table was saved under Ronja’s old SQL rules The table’s SQL predates how Ronja reads backslashes today, and the old rules read it differently — a backslash escape they decoded such as \1 or \b, or a line break inside a quoted value, among others, which the error names with its line — and a build no longer reads it the old way. \d, \s and other escapes the old rules left alone build as written. See Legacy SQL escapes Edit the table’s recipe and publish it: that moves it to the current rules. Check each value the error names means what you intend
Banner “Out of sync — showing data from last successful build” The most recent build failed, so you’re seeing the last good data. Either an input changed, or the rebuild couldn’t produce the table from its inputs any more — an input that lost a column is the usual cause Expand the banner to read why the rebuild failed, then have an Admin rebuild — or use Investigate with Ronja in the banner
Banner “Showing data from … Updates have failed since …:” or a Not updating marker on the table The table’s rebuilds have been failing since the time shown, so it is still answering with the data from its last successful build. The reason after the colon is the latest attempt’s Fix what the reason names — usually an input that changed — then have an Admin rebuild, or use Investigate with Ronja in the banner. The banner and marker clear on the next successful build. See When a table stops updating
“No data available. Build the table to see results.” The table has never been built. On a Dynamic table it means nothing has been written to it yet Run the build (Admin), or push files then POST /build for file-fed tables. For a Dynamic table, write rows to it — there is no build for this kind, and a query against it works meanwhile, returning no rows
Building a Derived table fails because an input is a Dynamic table that has never been written to, or one that was just cleared A Dynamic table can be queried before its first write and after it is cleared, but nothing can be built from it until it is written to: a clear removes its data and its column types, not just its rows. After a clear, the Derived table keeps showing its data from before the clear Write rows to the input table. A published Derived table then rebuilds on its own; one still in draft needs rebuilding after the write. If you wrote right after a clear and the Derived table still shows its data from before the clear, rebuild it
Building a Derived table fails with “input table … has no data to read — its last build or sync produced no data files” The input’s last build or sync finished without producing any data: an Integration table whose last sync brought in no files, or a Derived table whose last build published nothing Rebuild or re-sync that input, then rebuild this table if it doesn’t follow on its own. If the input is a Dynamic table, write rows to it instead — there is no build for that kind
Table stuck on “Building table…” A build is still running — a larger table takes longer to build Wait; the page updates live as the build progresses

More on statuses: table types.

Symptom Likely cause Fix
Run shows red “Failed” The Python errored Open the run: the Log tab has the full output (errors in red); the Steps tab shows exactly which step failed. Ask Ronja to fix the workflow in an exploration
Run succeeded but shows a yellow “degraded” badge A best-effort step failed while the run completed Open the Steps tab to find the failed step — decide whether it matters
The run succeeded, but a number in its output is null (empty), and Warnings from this run says some numbers were not finite The workflow produced a value that is not a real number — a missing value, or a division by zero. Ronja cannot carry those, so it delivers them as null rather than failing the run If the difference matters, ask Ronja (or whoever built the workflow) to handle missing values or divisions by zero before the workflow returns its result
“this workflow requires approval and cannot be run from this entry point” The workflow carries a legacy Pre-run approval gate (labelled Deprecated on its page) — it can only run from a chat where an approver signs off Run it through an exploration, or ask Ronja to convert it to a mid-run approval, which works from every entry point and keeps the same approvers — see Approval before a run
Testing, publishing, submitting for review or restoring a version of a workflow is refused, saying “runtime 1 and 2 are retired” It is an older workflow, on a runtime Ronja has retired. It keeps running as it is, but its code — and its parameters, the file Ronja runs first, its packages, and the tables, secrets, Agents and modules it uses — can no longer change until it is brought up to date. Restoring an earlier version is a change to its code too Ask Ronja to bring it up to date: she rewrites how it reads its tables and moves it to the current runtime in the same change. If you meant only to rename it or change its settings, discard the draft and make that change on a new one. If the message says the live workflow has moved since your draft was taken, discard the draft and open a new one. If it says a run is in flight, pause the automation that starts the workflow and let its waiting runs finish (decide their approvals, answer their questions), then try again. See Create a workflow
Picking up a failed run where it stopped is refused, saying the run “started on runtime 1 and the workflow has since moved to runtime 3” (or “to runtime 4”) The run began on the oldest runtime, before the workflow was brought up to date, and the steps it finished were recorded in a way the current runtime can’t reuse Start a new run instead. Steps the old run finished run again, so check before re-running a workflow that sends mail or writes to another system
Run refused with a credits message The organization’s wallet is empty — an empty wallet blocks workflow runs too The Super Admin can buy credits on the Billing page
Run refused with “Your organization has used its monthly budget. New chats and runs resume when the next billing period starts on …” Your organization has used its monthly budget for this billing period, which stops new runs for everyone An Admin raises the budget on the Control Center’s Rules tab, which lifts the stop within about 20 seconds; otherwise run it again once the next billing period starts
A step that runs a Saved Agent or asks AI something gets “AI is paused for now. Your organization’s daily AI safety limit kicked in. It protects you from an unexpected spike in AI use. Nothing is wrong with your account or billing.” Your organization reached its daily AI safety limit, a safeguard that pauses all AI until 00:00 UTC. It is not a billing problem. Steps that don’t use AI are not affected. A workflow that fails on it shows the same explanation, ending “AI resumes by 00:00 UTC.”, as the run’s error; under an automation, the automation’s run reads Paused — daily AI safety limit Run it again once AI resumes, or an Admin raises your organization’s limit on the Control Center’s Rules tab, which lifts the pause within a minute
Starting a workflow or Saved Agent is refused, naming a run that is already going (a 409 over the API) It is set to Skip if a run is in progress, so a start arriving while one of its runs is still going is refused — skipped, not queued. Nothing failed, and no run is recorded Open the run the message names and wait for it, or ask Ronja to let that workflow or Agent overlap again — see Concurrency
A workflow or app refused a call with “not published yet” The workflow it runs is still a draft, or waiting for review. A workflow can point at one of your own unpublished workflows while you build, but nothing may run it — test runs included — until it is published Publish the workflow being run (commit the draft, or have an Admin approve it). Nothing else has to change: the call itself is correct and stays as it is
A workflow or app refused a call with “archived — unarchive it” The workflow it runs was archived. An archived workflow is not runnable from anywhere, including an app’s run button Unarchive the workflow, or take it out of the workflow or app that runs it — ask Ronja to remove the call, or edit the app’s list of workflows
Run refused before it starts, naming the file the workflow runs first and saying it has no executable statements Every line in that file is blank or a comment — often it is still the starter placeholder, because the workflow runs a different file than the one your code is in Put the workflow’s code in the file the message names, or point the workflow at the file that already holds it — ask Ronja to change it
A run shows Success in a second or two with nothing to show, or works only on some runs The file the workflow runs first wraps its code in if __name__ == "__main__":. On standard compute that block is skipped; on dedicated compute, which Ronja also picks on its own for a workflow whose code is too large for standard compute, it runs — so the same workflow does its work on some runs and nothing on others. Saving it gave a warning, but nothing refuses it Ask Ronja to change the code. A workflow Ronja writes today keeps its code in a main function that Ronja calls, so that if block never runs and does no harm. Code you keep in your own editor: drop the if line and move the code under it to the top level of the file
Run refused before it starts, saying main.py “is still the runtime-4 starter” The workflow’s code has not been written yet: a new workflow starts with an empty main function Ask Ronja to write the workflow, or push your own main.py
Publishing a workflow is refused, saying main.py “must define main and not call it before this workflow can go live” The file the workflow runs first has no main function, or calls main itself. Ronja calls main and takes what it returns as the result, so a workflow without one would fail every run. Saving the file was allowed; publishing is where it stops Ask Ronja to fix the file, then publish again
Run failed saying the result is “over the 8192-byte limit for a result” The workflow returned more than 8 KB. Mail it sent and other effects stand, but the files and table writes of that run were not saved Ask Ronja to return a short summary and write the full data to a table or a file
Run failed saying the result “contains an s3:// URI into Ronja’s own storage” The workflow returned the temporary address of a file it saved, which stops working once the run ends Ask Ronja to return the file’s name instead: the file itself is listed on the run’s outputs
Restoring an earlier version of a workflow is refused, saying “restoring past the upgrade” That version was written before the workflow’s code moved to the way Ronja writes workflows now, and a workflow does not move back Ask Ronja to copy what you need from that version into the current code
Run refused before it starts, saying a required parameter is blank — often an automation nobody changed that now fails on every run The parameter is required and has no default value, and the value it was given is empty or only spaces. For an automation, that is its saved value or the field its trigger fills the parameter from — a value saved before the parameter was made required fails on every run Give it a value: edit the automation’s saved value, or make sure the trigger sends that field with content. If an empty value is legitimate, ask Ronja to make the parameter optional. A select with a fixed list of choices is refused as not one of its choices instead — ask Ronja to add an empty choice to the list. See Parameters
Run failed with “recursion depth exceeded” or a message about being too many chained runs deep The chain of Agents starting workflows starting Agents went deeper than Ronja allows. Chains this long are nearly always an accidental loop Ask Ronja to flatten the chain — start the Agent from the workflow that begins it rather than from one nested inside it. A previously-working pipeline can hit this the first time it runs after the limit began applying
Run failed with a message about the Agent needing to be started without waiting The workflow waits for a Saved Agent that is set up to ask a person and wait for their reply — an Agent that stops to ask someone must be started and left to it Ask Ronja to change the workflow so it starts the Agent and moves on instead of waiting. See Create a Saved Agent
A run fails at a table read (tools.query) saying “the query’s result is larger than a query delivers” One table read hands the run at most 2.5 GB, as a Parquet file — 64 MB for a query that reads no table Ask Ronja to narrow the query: fewer columns, a filter, or the aggregation done in SQL. If the run really needs all of it, have the result built as a Derived table instead of read into the run. See Limits
A run fails at a table read (tools.query) saying it must be “one SELECT statement” One table read runs one statement that returns rows. Several statements (a leading SET included), EXPLAIN, PRAGMA, CREATE, COPY and a PIVOT without an IN list are refused Ask Ronja to make it one SELECT, or to split it into several reads
Run times out around 10 minutes The default execution window is 10 minutes Ask Ronja to enable dedicated compute for the workflow (a run may take up to 4 hours; it can take a few minutes to start)
Run fails saying it reached the 4-hour limit for a run on dedicated compute The run already ran on dedicated compute — Ronja also runs a workflow whose code is too large for standard compute there — and ran for 4 hours. The time it waited for a machine does not count Ask Ronja to change the workflow so each run does less: split the work across several runs (one per month or per customer group, for example), or make each run faster by reading fewer rows and columns and filtering in SQL before the data reaches Python
Run runs out of memory and the message says dedicated compute would not help The run already ran on dedicated compute and used all the memory it has Ask Ronja to change the workflow so each run does less: process the data in smaller chunks, narrow the date range, or split the work across several runs. Turning dedicated compute on changes nothing — it was already on
Run fails saying it never started because no dedicated compute machine became free within 40 minutes (13 minutes for a workflow an email started) Every dedicated compute machine was busy for as long as the run waited for one. Nothing ran, so nothing was changed Run it again later. If it keeps happening at the same time of day, several large runs are starting together — ask Ronja to spread out the automations that start them
Run reads Failed with “Cancelled by” and a name Someone cancelled it while it ran on dedicated compute. It is not a failure of the workflow, and nobody was emailed about it Nothing to fix. Run it again if the work still needs doing. See Cancel a run on dedicated compute
A workflow’s extra Python package (one listed under pipPackages) fails to install Workflows run on 64-bit ARM Linux with Python 3.13. A package that contains compiled code installs only if it publishes a build for Linux on ARM (aarch64) for Python 3.13 Ask Ronja to pin a version of the package that publishes one, or to use a pure-Python alternative
Run failed at an approval step saying an approver isn’t a member of the organization Every approver has to be somebody with a Ronja account in this organization. An address with no account behind it is refused at the step rather than mailed and never answered Ask whoever built the workflow to name people who are members — “ask the finance team to approve before it posts” — or invite the person first. With nobody named at the step and no approvers set on the workflow itself to fall back on, the run fails at that step for the same reason
Run sits at Awaiting approval and nobody was emailed The named approvers all left the organization between the moment the run asked and the moment the email went out Open the run: the card names who it is waiting on. An Admin can always decide a run that is already waiting
Run failed right after the workflow was republished, while it was Awaiting approval An approved run never continues on a new version of the workflow. Publishing an edit while a run waits ends that run rather than resuming it against code the approver never saw Re-run it — the decision has to be made on a run that starts on the current version. Land workflow edits when nothing is waiting on a decision. See Mid-run approvals

Full guide: Monitor runs and traces.

Symptom Likely cause Fix
Row shows “Paused” The automation is disabled — deleting its access group also pauses it Flip the toggle back on
Runs in the history read Paused — monthly budget used Your organization has used its monthly budget, which stops automations along with every other new run. Each fire is recorded as skipped, not as a failure, sends no failure alert and is not run again later An Admin raises the budget on the Control Center’s Rules tab, or wait for the next billing period. Run now starts the automation again once the budget allows it
Webhook calls return 429 “daily webhook run cap reached” The 1,000 runs / 24 h quota is used Wait for the rolling window, or reduce caller frequency
Table trigger stopped firing The 50 runs / 24 h loop-safety cap was hit Check what’s rebuilding the watched tables that often
A Mailbox automation shows off and nobody paused it Its connected mailbox was disconnected. Ronja switches the automations watching it off rather than leaving them green against a mailbox that’s gone Connect a mailbox again on the Mailboxes page, then point the automation at it: open the automation, pick the newly connected mailbox in its trigger, save, and switch it back on. A reconnected mailbox is a new mailbox even at the same address, so re-enabling alone is refused. Re-enabling starts from that moment, so mail from while it was off isn’t worked through
A Mailbox automation still reads Active but nothing fires The mailbox itself has stopped working — its authorization needs reconnecting, or a check is failing. Unlike a disconnect, nothing is switched off and nothing is marked Open the Mailboxes page and look at that mailbox’s card; Reconnect if it asks you to. The automation resumes on its own — there’s nothing to re-enable
A Mailbox automation didn’t fire on mail already sitting in the inbox Only mail that arrives after you enable it counts. Enabling — or re-enabling after a pause — never replays a backlog Ask Ronja to work through the backlog in an exploration. Nothing makes the trigger reach back
Mailbox runs stopped part-way through a busy day The per-automation cap — 1,000 runs / 24 h, and 60 per minute — was reached Wait for the rolling window, or narrow Filters (optional) so fewer messages fire it
Email trigger ignores messages The sender isn’t on the allowlist (unlisted senders are dropped silently), or the routable address was rotated Add the sender’s address or domain to the allowlist; re-copy the current routable address
“Address pending — set your org’s ingest prefix in Governance → Organization rules.” The org-wide email ingest prefix hasn’t been set An Admin sets it once at Governance → Organization rules
Run now does nothing and a grey line says the automation is already going One of that automation’s own runs has not finished. That includes a run that is only waiting — for an approval, or for someone to answer a question — which can sit there for days Open the run the message names and see what it is waiting for. If it is waiting on a person, answer it; if it is waiting on an approval, approve or reject it. Once that run ends, Run now works again. Nothing was lost: a refused press starts nothing and records nothing
Runs in the history read Skipped The workflow or Saved Agent this automation runs is set to Skip if a run is in progress, and one of that resource’s runs was still going when this fire arrived — so the fire was refused. A summary that begins “Not retried:” means the automation was turned off, changed or deleted while Ronja waited to retry a workflow it couldn’t start. On a Table automation there is a third kind: a queued catch-up re-run that found every table it watched gone — which needs the automation to have been pointed at other tables first, since Ronja refuses to delete a table while one watches it Nothing to fix: a refused fire’s row names the run that was in the way, and a Skipped entry is neutral rather than a failure. Nothing for you to re-run on a Table automation either — it runs once more shortly after the blocking run finishes, however many changes arrived meanwhile, unless its last three runs that actually ran were all such re-runs, when the row says it was not re-queued; other trigger kinds do not replay a refused fire. To let the fires overlap, ask Ronja to change the setting on that workflow or Agent — see Concurrency
Runs in the history read Paused — daily AI safety limit Your organization’s daily AI safety limit had paused AI: the automation’s Saved Agent couldn’t start or was stopped part-way, or its workflow failed on an AI step the pause refused (the linked workflow run reads Failed, with the same explanation). Each such fire is recorded as a skipped run, in neutral grey: it isn’t a failure and sends no failure alert. Automations that run a workflow without AI keep running Nothing to fix in the automation. The fire is not run again later, whatever the trigger: a schedule runs at its next time, and an email, webhook, event, table change or mailbox message that arrived during the pause is not replayed, and what it carried is not kept. Run now starts the automation again without it once AI resumes, by 00:00 UTC; for an email or webhook that mattered, have it sent again then, or ask Ronja to handle it. If the pause comes too early in the day, an Admin can raise your organization’s limit on the Control Center’s Rules tab
Runs in the history read timeout The run, on standard compute, was still going when the part of Ronja running it restarted, so Ronja closed it rather than leave it open for good. This is not the 10-minute execution window above, and nothing is wrong with the automation Run it again. No alert is sent for one of these, so if you are watching for failures, check the run history rather than waiting to be told
A workflow run failed saying Ronja restarted while saving this run’s results Ronja restarted while it was saving a run’s tables, variables and files, after the run itself had finished. Some of them may already have been written Check the tables and files the workflow writes before you run it again, so it does not write them twice
Every fire fails at an approval gate The action is a workflow with a legacy Pre-run approval gate — those fail closed on automations Ask Ronja to convert it to a mid-run approval (which automates fine), or point the automation at another workflow or a Saved Agent — see Approval before a run

When a Saved Agent or automation pauses to ask a person something, the reply is picked up silently — and when a reply is not accepted, that is silent too. Ronja never writes back to say a reply was ignored, so the run simply keeps waiting.

Symptom Likely cause Fix
Ronja wrote back “Thanks, but I can’t carry on right now.”, saying AI is paused Your organization’s daily AI safety limit had paused AI when the reply arrived, so it wasn’t kept. The question is still waiting Reply again once AI resumes, by 00:00 UTC. If the time to answer has run out by then, the run carries on as it does when nobody answered
Ronja wrote back “Thanks, but I can’t carry on right now:”, saying your organization has used its monthly budget Your organization had used its monthly budget when the reply arrived, so it wasn’t taken. The question is still waiting Reply again once an admin has raised the budget or the next billing period has started. If the time to answer runs out meanwhile, the run carries on as it does when nobody answered, once the budget allows it
The run reports nobody answered, but the person is sure they replied The reply came from a different address than the one Ronja asked — a personal account, or a forwarded copy answered by someone else Reply from the exact address the question arrived at. Only that address counts
Same, and they replied from the right address The reply was an out-of-office or other automatic reply, or had no readable text in it at all — an attachment with nothing typed above it, or a message whose formatting carried no text Reply again with typed text in it. A reply that quotes the original is fine, whether or not there is text above the quote
Same, with real text, from the right address, and the question came from one of your own connected mailboxes Their mail system couldn’t confirm the reply was genuinely from them. For questions sent from your own mailbox, Ronja reads the sender checks the receiving mail server ran and refuses a reply those checks don’t positively confirm — including one they couldn’t confirm either way Ask your mail admin whether the sender’s domain publishes a sender-verification policy (they’ll know it as DMARC). Until it does, replies from that domain can’t be accepted for these questions, and the run waits out its full window. Questions sent from Ronja’s own address are unaffected — they’re accepted on the reply address alone
Same, and the reply was very long Ronja reads about the first 8 KB of a reply — several pages — and says in the run when one was cut short Reply again with the important part near the top, or a shorter answer
The run says it asked from your organization’s mailbox but can’t be answered Ronja lost track of which mail thread the question went out in, so no reply can be matched back to the run Nothing to fix — the run says so plainly and continues without the answer rather than claiming nobody was asked. Re-run it if the answer mattered
The run finished without asking anyone at all A limit was hit: 5 questions per run, 10 questions to one person per day, or 50 paused runs across the organization The run says what it was missing. Wait for the daily window, or check whether other runs are sitting paused — see Limits and retention
Ronja sent a closing message (“thanks, that’s all I needed”), the person replied to it, and nothing happened A message that needs no answer ends the exchange — nothing is listening for what comes after it Nothing to fix. When Ronja still needs something back she asks a follow-up question instead, which does wait for a reply — see Carrying on the conversation
The run says it couldn’t write back into a conversation it had already opened The conversation ran out: 20 messages from Ronja, or 30 days since its last message. An Admin detaching the mailbox from the Agent or automation stops conversations that are already open too, as does narrowing the mailbox’s Compose recipients or the organization’s Agent email policy — and on Slack, the person leaving your organization Nothing is sent, and the run carries on rather than starting an unrelated new message. If the exchange still matters, re-run it so it opens a fresh conversation

Full guide: Create a Saved Agent.

An open chat catches up on its own: you don’t need to reload the page to see an answer that finished while you were away.

Symptom Likely cause Fix
Reconnecting… at the bottom of the chat, above the message box Your browser lost its live connection to Ronja for more than a few seconds — the network dropped, the laptop slept, or Ronja itself was restarting. Ronja keeps working on her answer meanwhile; only the live view paused Nothing to do. The chat keeps trying, and as soon as it is back it reads the conversation again and shows everything you missed, including an answer that finished meanwhile. If the line stays, check your internet connection; if that is fine, reload the page
“This message couldn’t be displayed.” in place of one message — or “This chat stopped updating because of a display error.” with a Reload chat button Your browser couldn’t draw part of the conversation. It is a display problem only: the conversation is saved, and Ronja still reads every message of it For one message, the rest of the chat keeps updating; a message that was still being written often shows once it is finished. For the whole chat, click Reload chat: it reads the conversation again and picks up live updates where it left off

The laid-out answer of Standard and Deep analysis says so in place when it can’t show you everything.

Symptom Likely cause Fix
The answer ends on “Answer cut short — ask to continue.” Ronja ran out of room mid-answer. What is above the line is complete and correct — it is the rest that never arrived, not a figure that came out wrong Ask her to continue, or to carry on from the last section — she picks up where she stopped. Asking a narrower question next time keeps a long answer whole
“A chart couldn’t be drawn from its spec and was left out.” at the foot of the answer — or “N charts couldn’t be drawn from their specs and were left out.” for more than one. Copy the answer out, or read it in Slack, Microsoft Teams or email, and the same loss is worded differently, in the answer’s list of caveats: “A chart could not be drawn from the spec it was given, so it was left out of this answer.” / “N charts could not be drawn from the specs they were given, so they were left out of this answer.” Ronja described that chart in a way it can’t be drawn from. The mistake is in her description of the picture, not in the numbers or in the data behind them. Rather than lose a finished answer over one figure, she keeps the answer and leaves the chart out — and says so, so a missing figure is never silent The rest of the page — the words, the key figures, the tables and the Sources — is complete and correct, and nothing in it is missing because of this. Asking the whole question again means waiting out the whole page a second time, and it may well come back the same way, so ask for just that figure instead (“chart revenue by month”), or ask for those numbers as a table
“1 block couldn’t be displayed.” at the foot of the answer — or “N blocks couldn’t be displayed.” for more than one — with no mention of a chart Different problem: Ronja composed a part of the answer in a shape this version of Ronja can’t draw at all — not a chart she couldn’t draw, but a kind of content the page doesn’t know Everything else on the page is unaffected and correct. Ask for that part again (“show me that as a table”) and she’ll use a shape that renders
“The formatted answer couldn’t be laid out.” where the laid-out answer would be Ronja’s attempt at the laid-out answer was rejected and the corrected one never arrived. Anything she wrote above that line still stands and is unaffected Read what’s above the line first; it is often the whole answer. If it isn’t, ask the question again, and ask for a plain answer without charts if it happens twice on the same question
“Couldn’t lay out the formatted answer — composing it again…” with a pulsing dot Ronja’s attempt at the laid-out answer was rejected and she’s composing a corrected one. It says nothing about anything written above it — that text is hers and is unaffected Wait; the laid-out answer fills in on its own. Only worry if the conversation itself has stopped (no work block ticking, no stop button)
A Sources table is badged stale, build failed, not updating or needs rebuild Not a problem with the answer — a problem with the data under it. The numbers are real, but the table behind them is out of date, broken, no longer updating, or waiting on a rebuild Click through to the table and see A table build failed above, or When a table stops updating for not updating. A badged source is exactly the case where you should check before acting on the number
You asked for a bar chart’s value axis to start above zero, and it still starts at 0 A bar’s length is the value, measured from zero. An axis that starts at 24 would draw a value of 25 as a sliver and 34 as ten times taller — a ratio that is not in the data. So on a bar chart a requested range can widen the axis but never cut off the zero end Ask for a line or a dot chart, where a fixed range is honoured exactly as asked. Or keep the bars and let the labels carry the precise values
Two or more bars stand side by side at one category, under an amber note reading N of M bars hold more than one value — each is drawn as its own bar The data behind the chart holds more than one row for that bar. Rather than add them up and show you a total nobody asked for, Ronja draws every value as its own bar and says so. A stacked bar chart is the exception — it stacks them, because stacking is its point. Stacked segments keep their sign, so a negative value (a refund, a write-off) hangs below the zero line rather than adding to the bar it reduces Ask Ronja to total or average the values per category, or to filter the data down to one row per bar. Either way the chart comes back with one bar per category

Three kinds of message land here, and all of them are quoted below exactly as a viewer sees them. The ones beginning [ronja] come from the reader that turns the data an app gets back into rows: loading it has a time limit, and when it runs out the app says so rather than showing a spinner that never stops. A published App carries its reader inside it, and an inline app loads it from Ronja itself. An App last built before Ronja started putting the reader inside every App still fetches a larger decoder from a public content delivery network instead, and only such an App shows the three DuckDB-WASM rows below — asking Ronja to change anything in the App and publishing that change rebuilds it without that step. One message, beginning local mode requested but tables ineligible, comes from an App built before every query moved to Ronja: it asks to read a table inside the viewer’s browser, which an App can no longer do. The rest are plain sentences, and they mean the database behind the app refused or stopped the query — the database’s own wording is deliberately kept back from the screen and sent to whoever maintains the app instead.

Symptom Likely cause Fix
“[ronja] DuckDB-WASM did not boot within 60s — parquet results cannot be decoded (is cdn.jsdelivr.net reachable?)” An App built before its reader moved inside it fetches a decoder from a public content delivery network the first time it reads data, and it did not arrive within 60 s. Usually the network the viewer is on: a corporate proxy or firewall blocking cdn.jsdelivr.net, or a very slow connection Reload the app. If it repeats for everyone on one network, ask whoever runs it to allow cdn.jsdelivr.net. Nothing in the app or its data is wrong — the same app works for anyone who can reach that address. Asking Ronja to update the App, and publishing that change, removes the fetch altogether
The same message again, straight away, on a retry that took no time at all Working as designed. After a start-up times out, the app refuses to try again for a wait that starts at a minute and lengthens while it keeps failing, so that a page left open does not stack up abandoned attempts. The refusal reuses the same wording Wait a minute and reload. A fast failure here is the app declining to retry yet, not a second timeout
“[ronja] DuckDB-WASM did not decode the result within 60s” The decoder started, but one result took more than 60 s to read — a very large result is the usual reason Narrow the query (fewer rows or columns, or a filter), or ask Ronja to. Reloading clears the decoder if it got stuck
“[ronja] the parquet reader did not load from this app’s own origin within 60s — query results cannot be decoded” or “[ronja] the parquet reader could not be loaded from this app’s own origin…” Almost always an inline app in a conversation, which loads its reader from Ronja’s own address (a published App carries it inside itself). It does not come from a CDN, so this is not a blocked network — reloading almost always fixes it Reload the page. If it repeats, Ronja itself is unreachable from that network (the rest of the page will be failing too); ask your admin
An app is slow only the first time someone opens it Not an error. An App built before its reader moved inside it starts a decoder that is a download of tens of megabytes, so its first query is a second or more slower than every query after it Ask Ronja to update the App and publish that change, which removes that download. If you are looking at timings meanwhile, compare the second query rather than the first
“local mode requested but tables ineligible: …”, followed by each table it asked for and a reason An App built before every query moved to Ronja asks to read a table inside the viewer’s browser instead of asking Ronja. An App can no longer read a table that way, so the query is refused. Nothing is wrong with the table or its data Ask Ronja in a Build-mode conversation to update the App, and publish that change. Reloading does not help: the App asks the same way every time until it is updated
“Someone else changed the same data at the same moment, so this didn’t go through — try again.” Two people — or two open tabs — saved the same record at the same instant, and the database rolled one of them back. Nothing was saved Do it again. It normally works the second time. If it happens constantly on a busy screen, tell whoever maintains the app
An app’s query fails saying “the query’s answer is larger than a query returns” One query answers with at most 64 MB Ask Ronja to narrow the query — fewer columns, a filter, or the aggregation done in SQL — so the app asks for what it shows
“This took too long and was stopped, so it didn’t go through — try again, and tell whoever maintains the app if it keeps happening.” The database stopped the query for running too long and rolled it back. Nothing was saved Try again. If it keeps happening, tell whoever maintains the app — a query that slow needs changing rather than retrying
“This app ran into a problem it can’t fix on its own — let whoever maintains it know.” Something the app asked the database for was wrong — a renamed column, a mistake in how the app builds its query. Reloading changes nothing, because nothing about the app is different the second time Tell whoever maintains the app, or ask Ronja to fix it. The database’s own wording, which this message deliberately leaves out, reaches them with the report

Limits: Apps · Inline apps.

A PDF side panel shows an error instead of the document

Section titled “A PDF side panel shows an error instead of the document”
Symptom Likely cause Fix
The panel says The viewer didn’t load. The viewer that draws a PDF inside the panel is fetched from a public content delivery network the first time you open a PDF. Usually the network you are on: a corporate proxy or firewall blocking cdn.jsdelivr.net, or a very slow connection Click Try again — on a slow connection it often works the second time. Otherwise click Open in a new tab under the message to read it in your browser’s own viewer, or use the panel’s Download control. If it repeats for everyone on one network, ask whoever runs it to allow cdn.jsdelivr.net. Nothing is wrong with the file — it opens normally for anyone who can reach that address
Symptom Likely cause Fix
Badge “Re-auth needed” / “Authorization expired. Please re-authorize this connection to resume syncing.” The OAuth token expired or was revoked Click Re-authorize on the connection page (Admin)
“connection is disabled” The connection’s toggle is off Re-enable it, then Sync
“connection is already syncing” A sync is in flight Wait, or Stop the current sync first
The badge stays on Syncing for hours, with no error A large sync runs as several cycles back to back, and the badge reads Syncing, with the time elapsed, through all of them. A cycle that stops without reporting back is noticed — usually within a minute, at the latest about 10 hours after it started — and the connection then shows Failed (“Sync failed unexpectedly…” or “sync timed out”) or carries on from where it stopped Nothing to do while it is running: each cycle continues on its own. Once it shows Failed, click Sync to start again. If it still shows Syncing a day after the sync began, contact Ronja support
Amber badge Degraded Nothing failed — the connection is still syncing, but a change-capture condition on it will cost you if it is left. On a PostgreSQL change capture connection that is the source running low on retained changes, a reservation that has gone or been discarded (the next collection then re-copies every selected table), a connection capturing nothing because no tables are picked, or a first copy that could not finish Open the connection page: it names the condition. Act on that, not on Sync — see When something goes wrong
“replication is stalled — re-snapshot to resume” The connection mirrors a managed database, and replication paused because Ronja could not read new changes from it for several hours. Sync is unavailable on the connection page while that lasts, so this wording reaches you from the API or the CLI Click Re-snapshot on the connection page (Admin): every table is copied fresh and replication resumes from there. Read what a fresh snapshot does not carry first — Mirror a database into a feature with CDC
“syncing is paused — the MySQL server no longer has the changes Ronja needs; first make the server keep binary logs longer than the time between syncs plus the time a full copy takes, then Reset the connection on its page in Ronja to copy it again” A MySQL (CDC / binlog) connection is Stalled: the MySQL server deleted binary logs Ronja had not read yet, so Ronja cannot continue from where it stopped and paused the connection. Syncing it again meets the same wall, so Sync is refused — on the connection page and from the API or the CLI First make the server keep binary logs longer than the time between syncs plus the time a full copy takes (how), then click Reset on the connection page (Admin). The next sync reads every table once from your server and replaces the change history Ronja held for this connection
“removing this connection’s previous files did not finish, so it was not reset and syncing is still paused — click Reset again to continue (files already removed stay removed)” You clicked Reset on a Stalled MySQL (CDC / binlog) connection. Reset removes the connection’s previous files before it restarts syncing, and gives that step under a minute; a connection with a great many files, or a storage hiccup, can need more. The connection simply stays paused; files already removed stay removed Click Reset again — it carries on from the files already removed. If it keeps saying this, contact support
“syncing is paused — every table of this connection continues from the one binary-log position the MySQL server no longer has, so resetting one table cannot recover it; first make the server keep binary logs longer than the time between syncs plus the time a full copy takes, then Reset the whole connection on its page in Ronja” You reset a single table of a Stalled MySQL (CDC / binlog) connection — the reset arrow beside the table on the connection page. Every table of the connection continues from the same point in the server’s binary logs, and that point is gone Reset the whole connection instead: first fix the server’s binary-log retention, then click Reset on the connection page (Admin)
“connection config is incomplete — check your settings” (or “select a database and tables”, “select at least one file or folder to sync”, …) No tables, datasets, or files have been selected yet — no data is fetched until at least one is Open the connection and complete the dataset/table selection
Red error banner on the connection page The last sync failed; the banner shows what failed — for a source Ronja could not reach, Ronja’s own summary first and the source’s words after “Details:”; otherwise the source system’s error verbatim Fix the upstream issue (credentials, network, permissions) and Sync again — or ask Ronja for help in an exploration
“Ronja could not read this connection’s saved sync bookmark, so it stopped the sync instead of re-reading tables into data it already holds. It retries on every scheduled sync. If this persists, an Admin can Reset the connection to re-import every table from scratch, or contact Ronja support.” Ronja keeps a bookmark of how far each table has synced, and could not read it. Rather than start every table over and import rows your tables already hold a second time, it stopped the sync. Your tables keep their last data Wait for the next scheduled sync, which tries again. If the message persists, an Admin clicks Reset on the connection page: every table is re-imported from scratch, which can take a while for large tables. Or contact Ronja support. Clicking Sync again does not help
“Could not connect to the … database” Ronja never reached the source (or its SSH bastion) on that run, so nothing was synced and your tables keep their last data Check the server and the credentials as described in Fix data issues, step 4, then Sync again
“Ronja’s SharePoint app could not sign in to your Microsoft organization: … If a Microsoft administrator removed or revoked Ronja’s app, this connection cannot be restored. Ask Ronja to connect SharePoint with your own Microsoft app.” A sync of an existing SharePoint connection was refused by your Microsoft organization — most often because an administrator removed Ronja’s app or revoked its access. Microsoft’s own reason follows the colon Ask a Microsoft administrator whether Ronja’s app was removed or its access revoked. If it was, this connection cannot be restored: delete it, and ask Ronja to connect SharePoint with your own Microsoft app
“Ronja’s SharePoint app could not sign in to your Microsoft organization: … This is on Ronja’s side; if it repeats, contact Ronja support.” Microsoft did not accept the sign-in of Ronja’s own SharePoint app. Nothing in your Microsoft organization caused it If the message comes back sync after sync, contact Ronja support
“Ronja’s SharePoint app could not sign in to your Microsoft organization: … This is usually temporary; the next sync tries again.” A sync of an existing SharePoint connection could not reach Microsoft’s sign-in, or Microsoft answered with a passing error Nothing to do: the next scheduled sync tries again. If it keeps failing, contact Ronja support
A table on an existing SharePoint connection’s page shows the amber warning Password-protected workbook — cannot process The workbook needs a password to open, or carries a sensitivity label that encrypts it. Ronja skips that file and syncs the rest of the library Put an unprotected copy, or a CSV export, in the library. In a folder synced as one table, the file is left out of that table
A table on an existing SharePoint connection’s page shows the amber warning Not an Excel workbook — cannot process The file is named .xlsx but isn’t an Excel workbook — often a CSV or web page some other system exported. Ronja skips it Replace it with a real .xlsx, or save it as .csv
A table on the connection page shows an amber warning starting “replace deferred:” Nothing failed. The table is re-read in full every run, and this run’s copy could not be swapped in — most often because the table was being rebuilt at that moment. The previous copy is kept, so the table shows its last good data and its last-synced time does not move Nothing to do: the next run tries again on its own, and the warning clears
An amber warning starting “replace failed:” or “replace incomplete:” This run’s copy of a re-read-in-full table could not be moved into place (“replace failed”), or it is in place but the previous copy could not be cleared away (“replace incomplete”), so Ronja did not rebuild the table from it. The table keeps showing its previous data Nothing to do: the next run tries again and clears the leftovers. If the same table shows it run after run, contact support
A table shows Failed, and its message says the source is a read replica that cancels long queries The table is re-read in full, in one long query, and it points at a PostgreSQL read replica — which on default settings cancels a long query when the primary cleans up rows it is reading Point the connection at the primary, or on the replica raise max_standby_streaming_delay or set hot_standby_feedback = on. Either way out holds back cleanup on the primary for as long as the read runs
A table shows Failed with “the full-refresh scan exceeded its 2h budget” Re-reading the whole table took longer than the 2 hours one table’s full re-read is given Give the table a cursor column, so each run reads only what changed
Schedule won’t save Schedules can’t fire more than once per hour Pick an hourly-or-slower cadence

Full guide: Connect a data source and Fix data issues.

Symptom Likely cause Fix
Create SharePoint key answers “This SharePoint connection is not approved for a SharePoint key; contact Ronja support.” A SharePoint key can be made only from a connection Ronja support has checked Contact Ronja support
Create SharePoint key answers “This Microsoft organization is already connected to another Ronja organization.” The Microsoft organization this connection reads already belongs to another Ronja organization, so no key was made Contact Ronja support
After Create SharePoint key, a red message appears under the link to the new key The key was created, but its first access could not be made; the message is Microsoft’s or Ronja’s reason Nothing to do if the cause passes: the key renews its access by itself. If the message says Ronja’s app was removed or its access revoked, ask your Microsoft administrator to restore it
A secret’s Health & identity card shows Check failed with “This SharePoint key was not created from a SharePoint connection; create one with Create SharePoint key.” The secret names Ronja’s SharePoint app but was not made with Create SharePoint key, so Ronja never gets it access Delete it, and ask an Admin to make a key with Create SharePoint key
A Workflow reading SharePoint with a SharePoint key gets a 403 from Microsoft Graph The site is not shared with Ronja’s SharePoint app Ask your Microsoft administrator to grant Ronja’s app access to that site

Full guide: Manage secrets.

Symptom Likely cause Fix
Making a Saved Agent without choosing a feature, a Make my own copy of an app, or a SharePoint key answers “Your My Private Feature in … is in the trash. Restore it from Recently deleted on your Features page and try again.” These land in your My Private Feature in the Space you are working in, and that one is in the trash. Ronja won’t put new work into a feature that is waiting to be purged Open the Features page, expand Recently deleted, click Restore on My Private Feature, then try again. A Saved Agent can instead be made in a feature you choose

Full guide: Restore from trash.

Symptom Likely cause Fix
“You don’t have access to this chat.” The exploration wasn’t shared with you — or, for a conversation an automation or Saved Agent ran, you can’t see that automation or Saved Agent “Ask the owner to share it with you.” — or, for a run, ask for access to the feature the automation or Saved Agent lives in
A feature page shows This feature doesn’t exist or you don’t have access to it. The feature is private to someone else, isn’t attached to an access group you’re in, or has been deleted — Ronja can’t tell you which Ask an admin to share it with you
An App page shows This App doesn’t exist or you don’t have access to it. Same rule for the App’s feature: you can open an App only if you can open the feature it lives in Ask an admin to share the feature with you
A chart in a conversation shows This chart is no longer available or isn’t shared with you Charts belong to the conversation they were made in. Either the chart was deleted, or it came from a conversation that wasn’t shared with you — Ronja can’t tell you which Ask whoever made it. If you were expecting to see it, ask them to share the conversation the chart came from
A chart link opens on Chart not found or you don’t have access. Same rule, on the chart’s own page: the link opens for the people who can open the conversation the chart was made in Ask its owner to share that conversation with you — sharing the conversation shares its charts
You deleted a conversation and now want a chart from it Deleting a conversation stops it sharing its charts, but a chart you made yourself still opens, on its own page and by its link, once the conversation is gone Open the chart’s link as usual. The colleagues the conversation had been shared with can’t open it any more — the conversation that shared it with them no longer exists. Administrators still can, as they can for any conversation in the organization
“Build mode is disabled for your account. Contact an administrator to request access.” Build mode is off for your role or for you An admin with billing access turns it on for your role, or adds a personal exception, on the Rules tab of the Control Center. User Read-Only members never have build mode
“You have reached your credit allocation for this billing period. Contact an administrator to raise your limit.” Your billing-period allocation is used up. It counts what you run (chats, Slack or Teams conversations, API and CLI calls, older automations), never stops an Admin, and resets with the billing period An admin with billing access raises your allocation, or gives you a personal exception, on the Rules tab of the Control Center (or from your panel on its People tab)
“You’ve used your weekly AI budget. It resets on Monday at 00:00 UTC. Contact an administrator if you need more.” Your weekly AI budget is used up. It applies to Admins too Wait for the Monday reset, or an Admin raises your budget or uses Give extra credits this week in your panel on the Control Center’s People tab — see Set weekly AI budgets
“AI is paused for now. Your organization’s daily AI safety limit kicked in. It protects you from an unexpected spike in AI use. Nothing is wrong with your account or billing. AI resumes by …”, in a grey banner above the chat box; a message you sent reads “Not sent — AI is paused. It resumes by …” Not a permission or billing problem: your organization reached its daily AI safety limit, a safeguard against an unexpected spike in AI use. AI is paused for everyone, admins included, until the time shown Wait until then and click Retry on your message. An Admin can raise the organization’s own limit on the Control Center’s Rules tab, which lifts the pause within a minute; if Ronja’s limit is the one in effect, Ronja support raises it
“Your account has been blocked from running AI turns. Contact an administrator.” Your allocation is set to Blocked, for you or for your role. Blocked applies to Admins too An admin with billing access changes it on the Rules tab of the Control Center
“Your organization has used its monthly budget. New chats and runs resume when the next billing period starts on …, or as soon as an admin raises the budget in Control Center › Rules.” Not a permission problem: your organization has used its monthly budget for this billing period. It stops everyone, admins included Wait for the date shown, or an Admin raises the budget on the Control Center’s Rules tab, which lifts the stop within about 20 seconds. What you typed stays in the chat box
Errors mentioning “admin role” — for example “…requires the admin role” You tried to change an organization-scoped resource without the required role Propose the change instead (it becomes a draft/proposal for review), or ask an Admin. Some of these messages now name the way through, so read the rest of the sentence
An app in Ronja shows “This app doesn’t have permission to do that right now — ask an admin to check its database access.” The database login the app reads or writes with isn’t allowed to do that: an admin narrowed which tables it can reach, the table was added after the login was created (a login given a list of tables covers those and nothing added later), or a rule on the table refuses that row For a database Ronja manages, an admin checks which tables that login can reach — see Give something access to just a few tables. For a database connected from outside Ronja, ask whoever runs that database
Publishing a workflow, or saving a change to one, is refused, saying an approver isn’t a member of the organization Someone in the workflow’s Approval defaults Approvers has no Ronja account in this organization. A change is refused only for an approver it adds — when you publish it, or when you save it for a workflow in a private feature, where changes apply straight away An Admin invites them, or ask Ronja to remove them from the approvers, then try again. If the workflow is waiting for review, its approvers can’t be changed: an Admin invites them and approves again, or rejects it — or you withdraw it and ask again without them
API call returns 403 forbidden The token’s role is too low, or a scoped token lacks the needed grant Use a token with the right role and scope — see the API reference
You can’t approve a request you made — and switching to your API token doesn’t help Where self-approval is disallowed org-wide, the rule is about the person rather than the credential: your browser session and your tokens all count as you. (The Inbox also withholds Approve on a proposal you filed, though it can only recognise one you filed in the browser) A different admin reviews it — or that feature’s maintainer decides it
An approval is refused because the work “was authored by an API token that no longer exists” Where self-approval is disallowed, the rule compares people — and a deleted token leaves no record of whose it was, so nobody can be shown to be a different person from its author. Deleting a Ronja API credential deletes its token too, so rotating one has the same effect Nobody can approve it, including an Admin. Discard the draft, withdraw the proposal, or withdraw the move request, and ask its author to file it again from the account that should own it
An approval is refused saying “the API token you are approving with no longer exists” The other half of the same rule: the credential you are deciding with was deleted, so it can’t be shown to be a different person from the author Nothing is wrong with the item — sign in and decide it yourself, or use a token that still exists
You can’t approve a request someone else made, using a shared API token An API token counts as the Admin who created it, so where self-approval is disallowed it can’t approve that person’s work — whoever is holding the token A different admin reviews it — or that feature’s maintainer decides it
A link Ronja sent you stops on Couldn’t check your organizations Not an access problem: the link belongs to a particular organization, and the list of the ones you’re a member of didn’t load, so Ronja can’t tell whether it’s yours Click Try again; or Continue in the organization you’re already in to open the page there anyway

Roles overview: the roles capability matrix.

A notice at the top of the page keeps coming back

Section titled “A notice at the top of the page keeps coming back”
Symptom Likely cause Fix
A notice floating at the top of every page came back after you closed it The notice is a message from Ronja’s team to everyone using Ronja, not from anyone in your organization. Closing it hides it in that browser tab only — a new tab shows it again — and the tab remembers only the last notice you closed, so a notice you closed earlier returns once a newer one you also closed has ended Close it again. It goes away for everyone when Ronja’s team ends it. Some notices are addressed only to certain roles, so your admins may see a notice you don’t, or the other way round

Most “missing” navigation is role-gating, not a bug:

What’s missing Who sees it
The Admin sidebar entry (and everything under it) Admins and Super Admins only
The Advanced sidebar section (Workflows, Automations, Data map) Admins and Super Admins only. It starts collapsed — click Advanced to open it — and it isn’t drawn at all while the sidebar is collapsed to icons. Automations sits inside it for admins; everyone else keeps it as a top-level entry
Organization (login domains, danger zone) Super Admin only
Usage, the Control Center’s Spend response tab, and allocations, build mode and model choice on its People and Rules tabs Admins whose organization has billing access enabled — ask Ronja to enable it. Every Admin sees the Control Center entry, but without billing access its People and Rules tabs show weekly budgets and the daily AI safety limit only
Billing (buy credits) Super Admin only
Connections page content The connection list requires Admin — below that role the page shows no connections
The Build segment on the exploration start screen Everyone with build mode: on by default, unless an admin turned it off for their role or for them on the Control Center’s Rules tab. Never User Read-Only
The model/effort picker in chat Everyone by default, unless an admin denied it for their role or for them (hidden while the organization is out of credits)

These fixes cover bridged Slack and Microsoft Teams channels alike.

Symptom Likely cause Fix
No reply to a channel message The bridge’s trigger is @mention (the default) or the keyword “ronja”, and the message matched neither @-mention Ronja — once she owns a thread, follow-ups there don’t need it. An admin can change the trigger on the bridge page
“You don’t have a Ronja account yet — ask your admin to add you to Ronja, then try again.” Your Slack email doesn’t match a Ronja account in this organization An admin invites you (or approves your access request); your next message auto-links
“your Ronja account is in a different organization than this Slack bridge” Your account lives in another Ronja organization Ask your admin to sort out which organization the bridge should serve
“Your Slack identity is already linked to a different Ronja account.” A stale identity link “Ask your admin to reconcile this.”
Bridge status “Needs reauth” The Slack/Teams authorization expired or was revoked An admin clicks Reauthorize on the Bridges page
Bridge status “Disconnected” Ronja can no longer post, or the bridge was disconnected — disconnecting now removes her from the channel Re-invite @Ronja from Slack, or an admin reconnects from the bridge’s page
No bridge in this channel No Slack channel — public or private — is connected automatically; the bot must be added deliberately /invite @Ronja in the channel, or use Add bridge on the Bridges page. If Admin-only connections is on, a Ronja admin has to do it
Ronja answers every message with “AI is paused for now. Your organization’s daily AI safety limit kicked in. It protects you from an unexpected spike in AI use. Nothing is wrong with your account or billing. AI resumes by …” Your organization’s daily AI safety limit has paused AI for everyone until 00:00 UTC Send your message again once AI resumes. An Admin can raise the organization’s own limit on the Control Center’s Rules tab
Teams: no answer in a channel Teams channel messages require an @-mention; private Teams channels and group chats aren’t supported @-mention Ronja, or DM her

Full guide: Use Ronja in Slack and Teams.

Symptom Likely cause Fix
“Image {name} exceeds 20 MB limit” Images are capped at 20 MB Resize or compress the image
“Document {name} exceeds 100 MB limit” Documents are capped at 100 MB Split the document
“Text file {name} exceeds 5 MB limit” Text files are capped at 5 MB Trim it — and note only ~50 KB reaches Ronja anyway; consider uploading data as CSV/Excel instead
A file type won’t attach The chat accepts data files, images, documents, text/code files, and zip archives Convert to a supported format (e.g. export to CSV or PDF)
A zip attached but its files didn’t appear The archive is over the automatic-unpacking budget — 25 files, 150 MB, or 10 images — so Ronja listed its contents instead of unpacking a partial subset Ask her to unpack it: “unpack all of them”, or name the files you need. See Zip archives
Ronja says a zip is password-protected Encrypted archives can be listed but not opened Send the password, or re-send the files unencrypted
Ronja says a spreadsheet is an Excel 97–2003 workbook (.xls) Ronja reads the current Excel format, .xlsx, not the older .xls Open it in Excel, save it as an Excel Workbook (.xlsx), and attach the new file
Ronja says a spreadsheet is protected The workbook needs a password to open, or carries a sensitivity label, so its contents are encrypted Save a copy without the protection and attach that
Ronja says a spreadsheet is a web page saved under a spreadsheet name Many systems’ “Export to Excel” writes a web page (an HTML table) with an .xls name. Ronja can read it, but not import it as a table Open it in Excel, save it as an Excel Workbook (.xlsx) or CSV, and attach that
Ronja says a file is named like a spreadsheet but isn’t one The file’s contents aren’t a spreadsheet at all — something else was saved or renamed with a spreadsheet name Get the original file, or have it saved as .xlsx or CSV
Ronja says a spreadsheet link returned a web page The link opens a sign-in or preview page rather than the file itself Get a direct download link, or download the file and attach it
“too many members to list” on a zip A zip is only listed up to 10,000 members; past that Ronja won’t read its contents list at all Send the specific files you need, or a smaller archive — see Zip archives
Ronja unpacked only some of a zip An unpack request can return short — the working-log step reads “12 of 40 extracted” Ask her to unpack the rest, and don’t rely on a total computed before it completes
File push API: 400 “invalid filename” or “not a valid parquet file” The push API accepts only .parquet files with clean names Convert to Parquet first — see the API reference
File push API: 413 “file too large” 1 GiB per-file cap Split the file into several Parquet files — they build together

All caps in one place: Limits and retention.