Summary
A fresh npx @inkeep/create-agents quickstart cannot create/push any project. inkeep push (and the Visual Builder's own /manage/... calls) fail with HTTP 500, root cause role "appuser" does not exist on SELECT * FROM dolt_tags in the Dolt versioning layer.
The underlying cause is that the generated docker-compose.db.yml pins the Manage DB to an unpinned, pull_policy: always image:
doltgres-db:
image: dolthub/doltgresql:latest
pull_policy: always
Your maintained root docker-compose.yml pins dolthub/doltgresql:0.56.7, but create-agents-template/docker-compose.db.yml ships :latest. New users pull whatever built that day. Today's :latest (image built 2026-07-10) has a regression in the Dolt versioning/role path that 500s every project-full request.
Environment
@inkeep/create-agents (latest), packages @inkeep/agents-*@0.80.4
- macOS (Apple Silicon), Node 22.23.1, pnpm 10.32.1, Docker 29.6.1
dolthub/doltgresql:latest digest sha256:b4628dd35a0b44bbf957afe38d33e7f29bfa1a8dc5b1402fe5fc3237b33b14bd, created=2026-07-10T17:42:31Z
Reproduce
npx @inkeep/create-agents my-agents
cd my-agents
pnpm setup-dev # completes with "may not have been seeded" warning
pnpm dev # (or pnpm dev:all)
pnpm exec inkeep push --project src/projects/activities-planner --config src/inkeep.config.ts
setup-dev itself reports the seed failure; the standalone push reproduces it deterministically.
Root cause (verified)
The 500 originates in @inkeep/agents-core/dist/dolt/commit.js → doltListTags → resolveProjectRef:
ERROR (agents-api): Failed query: SELECT * FROM dolt_tags
caused by: error: role "appuser" does not exist
This is not an app auth/role problem. appuser connects fine and the healthcheck passes. The real issue is the Doltgres image:
On :latest (built today): drizzle-kit migrate succeeds, but the Dolt versioning path 500s with the misleading role "appuser" does not exist on SELECT * FROM dolt_tags.
On tagged stable 0.57.0 / 0.56.7: the versioning layer is fine (SELECT * FROM dolt_tags and dolt_branches work), but Doltgres does not support prepared statements, which node-pg/drizzle-orm use for every query:
$ psql -U appuser -d inkeep_agents -c "PREPARE t AS SELECT * FROM dolt_tags; EXECUTE t;"
ERROR: PREPARE is not yet supported Please file an issue at https://github.com/dolthub/doltgresql/issues
So drizzle-kit migrate and all app queries fail on the older tags, while the newest :latest build regressed the versioning/role handling. No currently available Doltgres image both supports prepared statements and has a working versioning layer, and the quickstart's unpinned :latest guarantees users hit whichever break shipped that day.
Evidence the SQL itself is fine on 0.57.0: applying all 25 @inkeep/agents-core/drizzle/manage/*.sql migrations directly via psql (simple query protocol) succeeds and creates all 40 tables; only the node-pg/drizzle prepared-statement path fails.
Suggested fix
- Pin the Manage DB image in
create-agents-template/docker-compose.db.yml (and the other template composes using :latest) to a known-good Doltgres tag that supports prepared statements — the same version you validate CI against — instead of dolthub/doltgresql:latest with pull_policy: always.
- Consider surfacing the real Doltgres error in
pnpm db:manage:migrate (scripts/migrate-dolt.ts currently runs drizzle-kit migrate with stdio: 'inherit', and drizzle-kit swallows the failure — it exits 1 with empty stderr, making this very hard to diagnose).
Happy to provide full logs / test any candidate pinned tag.
Summary
A fresh
npx @inkeep/create-agentsquickstart cannot create/push any project.inkeep push(and the Visual Builder's own/manage/...calls) fail with HTTP 500, root causerole "appuser" does not existonSELECT * FROM dolt_tagsin the Dolt versioning layer.The underlying cause is that the generated
docker-compose.db.ymlpins the Manage DB to an unpinned,pull_policy: alwaysimage:Your maintained root
docker-compose.ymlpinsdolthub/doltgresql:0.56.7, butcreate-agents-template/docker-compose.db.ymlships:latest. New users pull whatever built that day. Today's:latest(image built2026-07-10) has a regression in the Dolt versioning/role path that 500s everyproject-fullrequest.Environment
@inkeep/create-agents(latest), packages@inkeep/agents-*@0.80.4dolthub/doltgresql:latestdigestsha256:b4628dd35a0b44bbf957afe38d33e7f29bfa1a8dc5b1402fe5fc3237b33b14bd,created=2026-07-10T17:42:31ZReproduce
setup-devitself reports the seed failure; the standalone push reproduces it deterministically.Root cause (verified)
The 500 originates in
@inkeep/agents-core/dist/dolt/commit.js→doltListTags→resolveProjectRef:This is not an app auth/role problem.
appuserconnects fine and the healthcheck passes. The real issue is the Doltgres image:On
:latest(built today):drizzle-kit migratesucceeds, but the Dolt versioning path 500s with the misleadingrole "appuser" does not existonSELECT * FROM dolt_tags.On tagged stable
0.57.0/0.56.7: the versioning layer is fine (SELECT * FROM dolt_tagsanddolt_brancheswork), but Doltgres does not support prepared statements, whichnode-pg/drizzle-ormuse for every query:So
drizzle-kit migrateand all app queries fail on the older tags, while the newest:latestbuild regressed the versioning/role handling. No currently available Doltgres image both supports prepared statements and has a working versioning layer, and the quickstart's unpinned:latestguarantees users hit whichever break shipped that day.Evidence the SQL itself is fine on 0.57.0: applying all 25
@inkeep/agents-core/drizzle/manage/*.sqlmigrations directly viapsql(simple query protocol) succeeds and creates all 40 tables; only thenode-pg/drizzle prepared-statement path fails.Suggested fix
create-agents-template/docker-compose.db.yml(and the other template composes using:latest) to a known-good Doltgres tag that supports prepared statements — the same version you validate CI against — instead ofdolthub/doltgresql:latestwithpull_policy: always.pnpm db:manage:migrate(scripts/migrate-dolt.tscurrently runsdrizzle-kit migratewithstdio: 'inherit', and drizzle-kit swallows the failure — it exits 1 with empty stderr, making this very hard to diagnose).Happy to provide full logs / test any candidate pinned tag.