Bug: agents table INSERT/UPDATE fails with InvalidColumnReference on PostgreSQL with logical replication
- Dominant language
- TypeScript
- Stars
- 156k
- Forks
- 24.6k
- Avg merge
- 22h 9m
- Merged PRs (30d)
- 610
Description
### Self Checks
- [x] I have read the [Contributing Guide](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md) and [Language Policy](https://github.com/langgenius/dify/issues/1542).
- [x] This is only for bug report, if you would like to ask a question, please head to [Discussions](https://github.com/langgenius/dify/discussions/categories/general).
- [x] I have searched for existing issues [search for existing issues](https://github.com/langgenius/dify/issues), including closed ones.
- [x] I confirm that I am using English to submit this report, otherwise it will be closed.
- [x] 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :)
- [x] Please do not modify this template :) and fill in all the required fields.
### Dify version
1.16.0
### Cloud or Self Hosted
Self Hosted (Docker)
### Steps to reproduce
1. Use PostgreSQL 15+ with logical replication enabled (`wal_level = logical`) and a publication on the `dify` database.
2. Upgrade to Dify 1.16.0 (migrations run correctly).
3. Try to create an Agent app via API or UI → `POST /console/api/agent`.
### ✔️ Expected Behavior
Agent creation succeeds.
### ❌ Actual Behavior
Creating an Agent app fails with `500 Internal Server Error` on PostgreSQL instances where logical replication is enabled.sqlalchemy.exc.ProgrammingError: (psycopg2.errors.InvalidColumnReference) cannot update table "agents"
DETAIL: Replica identity must not contain unpublished generated columns.
[SQL: UPDATE agents SET active_config_snapshot_id=%(active_config_snapshot_id)s::UUID, updated_at=CURRENT_TIMESTAMP WHERE agents.id = %(agents_id)s::UUID]
Contributor guide
Research direction
Start with the POST /console/api/agent code path and the agents table update shown in the SQL error. Reproduce the failure on PostgreSQL 15+ with wal_level=logical and a publication, then trace the relevant schema and migration behavior. Done means Agent creation succeeds under logical replication without InvalidColumnReference and remains covered by a regression test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- postgresql, python, sqlalchemy
- Domain
- api, backend, databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100