langgenius / langgenius/dify

Bug: agents table INSERT/UPDATE fails with InvalidColumnReference on PostgreSQL with logical replication

Open
#39,460 2 comments 1 reaction 0 assignees View on GitHub
🐞 bug 1.16.0
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.