Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

deploy: apps/web has no schema-drift guard and will boot against a schema the worker refuses

Open
#183 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 4 days

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
68/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
shell
Domain
databases, devops

Research direction

Start by reading the guard comment block in apps/worker/start.sh, then compare its entry point with apps/web/start.sh and the bare prisma migrate deploy. Determine whether the guard should be shared or web should be explicitly exempt; done means both services have consistent, documented drift behavior and the OUTPOST_ALLOW_SCHEMA_DRIFT release valve remains clear.

Written by the indexing model from the issue text.

Description

area: infrastructure roadmap roadmap: next

Follow-up from #180, which added a drift guard to apps/worker/start.sh only.

apps/web/start.sh runs a bare prisma migrate deploy against the same database with no drift check. After #180, a drifted database blocks the worker while web deploys happily and serves traffic against a schema it does not match.

Two specific consequences:

  1. The failure class #180 fixes — a migration recorded as applied but never effective — is not worker-specific. Web reads the same database.
  2. #180's repair migration asserts its own postcondition and fails loudly on a mis-shaped SystemConfig. But if web deploys first, it applies that migration with no guard around it, so the repair window can close before the worker ever looks.

Either extract the guard into a script both services source, or state in apps/worker/start.sh why web is deliberately exempt. Note the guard is intentionally crude (any difference is fatal, with OUTPOST_ALLOW_SCHEMA_DRIFT as the release valve) — see the comment block in apps/worker/start.sh for why a cleverer classifier was removed.

Dominant language
TypeScript
Stars
10
Forks
4
Avg merge
4d 2h
Merged PRs (30d)
7

Getting set up

  • Ships a Dockerfile or Docker Compose file
  • No pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from CopilotKit/outpost

All issues in CopilotKit/outpost

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.