ALC-3004: Confirmation required
Your Safety rules say this kind of statement must be confirmed before it runs. Alcuin stopped before running anything and asks you.
What you see
Section titled “What you see”Usually you see a dialog rather than an error. Its title depends on what you were doing and where:
| You were | Title | Button |
|---|---|---|
| Running a statement | Run this anyway? |
Run it |
| Running a statement on production | Run this on production? |
Run on production |
| Committing or applying staged changes | Apply this? |
Apply |
| Committing or applying on production | Apply this to production? |
Apply to production |
The body says what the statements do and ends It cannot be undone from here. For example: On production, this drops, truncates or changes every row; changes structure. It cannot be undone from here. The statements that need confirming are listed below it.

The question for a statement your rules ask about, on production.
The phrases come from the kinds of statement your rules ask about:
drops, truncates or changes every rowchanges structuredrops data or objects for goodchanges rowsruns code whose effect cannot be read from the textcould not be parsed, so what it does is unknownis expected to return about 250,000 rows
On a connection that is still read-only, as production is when it opens, a statement run in a query tab shows the same reasons in the Run once dialog instead, after It also. A commit of staged rows, structure or a script asks Apply once first, then shows this question as a second dialog. See ALC-3001. Find value asks with its own dialog, Scan this much?, and Scan.
An agent connected over MCP is never asked. Its request is refused instead, with the same reason and Agents are never asked to confirm: run it in Alcuin. See ALC-4001.
Why it happens
Section titled “Why it happens”Each environment has rules in Settings, under Safety:
- Ask before: destructive statements:
DROP,TRUNCATE, anUPDATEorDELETEwith noWHERE, deleted rows and dropped structure. - Ask before: structure changes:
CREATE,ALTER,COMMENT,GRANTandREVOKE. - Ask before: every write: any
INSERT,UPDATE,DELETE,MERGE,COPY … FROMor edited row. - Ask before: code that cannot be read: a
DOblock,CALLorEXECUTE. - Ask before: scripts that cannot be parsed.
- Ask before large results: a query with no
LIMITthat the planner expects to return more rows than the number you set. Results and memory has the rest of the limits on large results.
Every environment starts by asking before destructive statements and scripts that cannot be parsed. Staging and Production also ask before code that cannot be read. Production also asks before structure changes and before results over 100,000 rows. Safety rules per environment has the full table.
What to do
Section titled “What to do”- Read the statements in the dialog.
- If they are what you meant, confirm. Alcuin runs them as they are.
- If not, cancel. Nothing ran, and staged changes stay staged.
For a large result, adding a LIMIT avoids the question.
To change what Alcuin asks about, change the rules in Settings, under Safety. The questions apply from the next statement. Production’s rules can only be made stricter.
Internal name
Section titled “Internal name”The engine reports this as ENGINE_CONFIRM_REQUIRED. Quote either name in an issue.