Skip to content

D1 - Lowercase BEGIN for trigger definition on D1 migration or sql exec fails for remote but not locally #10998

@GiovaniMFMurari

Description

@GiovaniMFMurari

What versions & operating system are you using?

  • wrangler 4.42.1
  • node v24.9.0
  • Ubuntu 24.04.2 LTS (WSL)

Please provide a link to a minimal reproduction

No response

Describe the Bug

I have a D1 migration 0002_create_triggers.sql which create some triggers for the updated_at field on some tables. They were working fine locally, but upon running the migration remotely for my test environment the error below happens.

✘ [ERROR] incomplete input: SQLITE_ERROR [code: 7500]

After checking out some related issues I've tried messing around with my statements and found out that the BEGIN statement for my triggers definitions were the issue. I have the habit of writing sql statements in lowercase and have never imagined it would be an issue.

  • Migration statement example that works locally but fails remotely:
create trigger if not exists update_user_updated_at
after update on user
for each row
begin
  update user
  set updated_at = current_timestamp
  where id = OLD.id;
end;
  • Migration statement that runs successfully on both local and remote:
create trigger if not exists update_user_updated_at
after update on user
for each row
BEGIN
  update user
  set updated_at = current_timestamp
  where id = OLD.id;
end;

Tell me if there is any more info that would help debugging.

Please provide any relevant error logs


--- 2025-10-16T20:11:22.611Z log
┌──────────────────────────┬────────┐
│ name                     │ status │
├──────────────────────────┼────────┤
│ 0002_create_triggers.sql │ ❌     │
└──────────────────────────┴────────┘

---

--- 2025-10-16T20:11:22.666Z error
✘ [ERROR] Migration 0002_create_triggers.sql failed with the following errors:


---

--- 2025-10-16T20:11:22.667Z log

---

--- 2025-10-16T20:11:22.668Z error
✘ [ERROR] incomplete input: SQLITE_ERROR [code: 7500]


---

--- 2025-10-16T20:11:22.678Z debug
Error: incomplete input: SQLITE_ERROR [code: 7500]
    at Object.handler (REDACTED/.pnpm/[email protected]_@[email protected]/node_modules/wrangler/wrangler-dist/cli.js:154536:19)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async Object.handler (REDACTED/.pnpm/[email protected]_@[email protected]/node_modules/wrangler/wrangler-dist/cli.js:152802:7)
---

--- 2025-10-16T20:11:22.678Z debug
Metrics dispatcher: Posting data {"deviceId":"47c...REDACTED","event":"wrangler command errored","timestamp":1760645482678,"properties":{"amplitude_session_id":1760645479237,"amplitude_event_id":1,"wranglerVersion":"4.42.1","osPlatform":"Linux","osVersion":"#1 SMP PREEMPT_DYNAMIC Thu Jun  5 18:30:46 UTC 2025","nodeVersion":24,"packageManager":"npm","isFirstUsage":false,"configFileType":"jsonc","isCI":false,"isPagesCI":false,"isWorkersCI":false,"isInteractive":true,"hasAssets":true,"argsUsed":["e","env","remote"],"argsCombination":"e, env, remote","command":"wrangler d1 migrations apply","args":{"env":"<REDACTED>","e":"<REDACTED>","remote":true,"xRemoteBindings":true,"preview":false,"database":"<REDACTED>"},"durationMs":3458,"durationSeconds":3.458,"durationMinutes":0.057633333333333335,"errorType":"UserError"}}
---

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething that isn't workingd1Relating to D1internalRequires support from the Cloudflare Platform

    Type

    Projects

    Status

    Other

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions