project.updated webhook payload includes zeroed project data #2345

Closed
opened 2026-03-22 14:03:50 -05:00 by GiteaMirror · 4 comments
Owner

Originally created by @jjarboe on GitHub (Sep 13, 2025).

Originally assigned to: @Copilot on GitHub.

Description

When I modify the project description, the conifigured webhook is sent but the payload includes a mostly zeroed-out project object (only the id and views seem to be valid):

{'project': {'id': 91, 'title': '', 'description': '', 'identifier': '', 'hex_color': '', 'parent_project_id': 0, 'owner': None, 'is_archived': False, 'background_information': None, 'background_blur_hash': '', 'is_favorite': False, 'position': 0, 'views': [{'id': 365, 'title': 'List', 'project_id': 91, 'view_kind': 'list', 'filter': {'s': '', 'sort_by': None, 'order_by': None, 'filter': 'done = false', 'filter_include_nulls': False}, 'position': 100, 'bucket_configuration_mode': 'none', 'bucket_configuration': None, 'default_bucket_id': 0, 'done_bucket_id': 0, 'updated': '2025-09-12T22:08:34Z', 'created': '2025-09-12T22:08:34Z'}, {'id': 366, 'title': 'Gantt', 'project_id': 91, 'view_kind': 'gantt', 'filter': None, 'position': 200, 'bucket_configuration_mode': 'none', 'bucket_configuration': None, 'default_bucket_id': 0, 'done_bucket_id': 0, 'updated': '2025-09-12T22:08:34Z', 'created': '2025-09-12T22:08:34Z'}, {'id': 367, 'title': 'Table', 'project_id': 91, 'view_kind': 'table', 'filter': None, 'position': 300, 'bucket_configuration_mode': 'none', 'bucket_configuration': None, 'default_bucket_id': 0, 'done_bucket_id': 0, 'updated': '2025-09-12T22:08:34Z', 'created': '2025-09-12T22:08:34Z'}, {'id': 368, 'title': 'Kanban', 'project_id': 91, 'view_kind': 'kanban', 'filter': None, 'position': 400, 'bucket_configuration_mode': 'manual', 'bucket_configuration': None, 'default_bucket_id': 275, 'done_bucket_id': 277, 'updated': '2025-09-12T22:08:34Z', 'created': '2025-09-12T22:08:34Z'}], 'max_permission': 0, 'created': '0001-01-01T00:00:00Z', 'updated': '0001-01-01T00:00:00Z'}}

On the off chance that the payload uses zeroed-out fields to indicate that the field did not change, I verified that the payload includes a zero-length description when I definitely made changes to the description and saved the project with a description that is not empty.

My webhook endpoint is not publicly visible, so I cannot reproduce in demo.

Vikunja Version

1.0.0-rc2

Browser and version

Chrome 139.0.7258.155 (Mac)

Can you reproduce the bug on the Vikunja demo site?

No

Screenshots

No response

Originally created by @jjarboe on GitHub (Sep 13, 2025). Originally assigned to: @Copilot on GitHub. ### Description When I modify the project description, the conifigured webhook is sent but the payload includes a mostly zeroed-out project object (only the id and views seem to be valid): {'project': {'id': 91, 'title': '', 'description': '', 'identifier': '', 'hex_color': '', 'parent_project_id': 0, 'owner': None, 'is_archived': False, 'background_information': None, 'background_blur_hash': '', 'is_favorite': False, 'position': 0, 'views': [{'id': 365, 'title': 'List', 'project_id': 91, 'view_kind': 'list', 'filter': {'s': '', 'sort_by': None, 'order_by': None, 'filter': 'done = false', 'filter_include_nulls': False}, 'position': 100, 'bucket_configuration_mode': 'none', 'bucket_configuration': None, 'default_bucket_id': 0, 'done_bucket_id': 0, 'updated': '2025-09-12T22:08:34Z', 'created': '2025-09-12T22:08:34Z'}, {'id': 366, 'title': 'Gantt', 'project_id': 91, 'view_kind': 'gantt', 'filter': None, 'position': 200, 'bucket_configuration_mode': 'none', 'bucket_configuration': None, 'default_bucket_id': 0, 'done_bucket_id': 0, 'updated': '2025-09-12T22:08:34Z', 'created': '2025-09-12T22:08:34Z'}, {'id': 367, 'title': 'Table', 'project_id': 91, 'view_kind': 'table', 'filter': None, 'position': 300, 'bucket_configuration_mode': 'none', 'bucket_configuration': None, 'default_bucket_id': 0, 'done_bucket_id': 0, 'updated': '2025-09-12T22:08:34Z', 'created': '2025-09-12T22:08:34Z'}, {'id': 368, 'title': 'Kanban', 'project_id': 91, 'view_kind': 'kanban', 'filter': None, 'position': 400, 'bucket_configuration_mode': 'manual', 'bucket_configuration': None, 'default_bucket_id': 275, 'done_bucket_id': 277, 'updated': '2025-09-12T22:08:34Z', 'created': '2025-09-12T22:08:34Z'}], 'max_permission': 0, 'created': '0001-01-01T00:00:00Z', 'updated': '0001-01-01T00:00:00Z'}} On the off chance that the payload uses zeroed-out fields to indicate that the field did not change, I verified that the payload includes a zero-length description when I definitely made changes to the description and saved the project with a description that is not empty. My webhook endpoint is not publicly visible, so I cannot reproduce in demo. ### Vikunja Version 1.0.0-rc2 ### Browser and version Chrome 139.0.7258.155 (Mac) ### Can you reproduce the bug on the Vikunja demo site? No ### Screenshots _No response_
Author
Owner

@kolaente commented on GitHub (Sep 16, 2025):

Can you reproduce this with a webhook testing tool like https://webhook.site/ ?

@kolaente commented on GitHub (Sep 16, 2025): Can you reproduce this with a webhook testing tool like https://webhook.site/ ?
Author
Owner

@jjarboe commented on GitHub (Sep 16, 2025):

I went to try.vikunja.io and was given the name "subsidizable-shavonda". I created a new project titled "This is the title of my project", available at https://try.vikunja.io/projects/331/1567, and configured webhooks to webhook.site. I created a task within the project, "add a task", then edited the project to add a description. Both sent webhooks and are included below. Note that the project object is zeroed out in both. I attached a screenshot of the changes I made to the project as well, so you can see that it has a color, description, etc.

Image
{"event_name":"project.updated","time":"2025-09-16T23:27:10.153930501Z","data":{"doer":{"id":149,"name":"","username":"subsidizable-shavonda","created":"2025-09-17T01:24:35+02:00","updated":"2025-09-17T01:24:35+02:00"},"project":{"id":331,"title":"","description":"","identifier":"","hex_color":"","parent_project_id":0,"owner":null,"is_archived":false,"background_information":null,"background_blur_hash":"","is_favorite":false,"position":0,"views":[{"id":1567,"title":"List","project_id":331,"view_kind":"list","filter":{"s":"","sort_by":null,"order_by":null,"filter":"done = false","filter_include_nulls":false},"position":100,"bucket_configuration_mode":"none","bucket_configuration":null,"default_bucket_id":0,"done_bucket_id":0,"updated":"2025-09-17T01:25:11+02:00","created":"2025-09-17T01:25:11+02:00"},{"id":1568,"title":"Gantt","project_id":331,"view_kind":"gantt","filter":null,"position":200,"bucket_configuration_mode":"none","bucket_configuration":null,"default_bucket_id":0,"done_bucket_id":0,"updated":"2025-09-17T01:25:11+02:00","created":"2025-09-17T01:25:11+02:00"},{"id":1569,"title":"Table","project_id":331,"view_kind":"table","filter":null,"position":300,"bucket_configuration_mode":"none","bucket_configuration":null,"default_bucket_id":0,"done_bucket_id":0,"updated":"2025-09-17T01:25:11+02:00","created":"2025-09-17T01:25:11+02:00"},{"id":1570,"title":"Kanban","project_id":331,"view_kind":"kanban","filter":null,"position":400,"bucket_configuration_mode":"manual","bucket_configuration":null,"default_bucket_id":1006,"done_bucket_id":1008,"updated":"2025-09-17T01:25:11+02:00","created":"2025-09-17T01:25:11+02:00"}],"max_permission":0,"created":"0001-01-01T00:00:00Z","updated":"0001-01-01T00:00:00Z"}}}
{"event_name":"task.created","time":"2025-09-16T23:26:14.808280043Z","data":{"doer":{"id":149,"name":"","username":"subsidizable-shavonda","created":"2025-09-17T01:24:35+02:00","updated":"2025-09-17T01:24:35+02:00"},"project":{"id":331,"title":"","description":"","identifier":"","hex_color":"","parent_project_id":0,"owner":null,"is_archived":false,"background_information":null,"background_blur_hash":"","is_favorite":false,"position":0,"views":[{"id":1567,"title":"List","project_id":331,"view_kind":"list","filter":{"s":"","sort_by":null,"order_by":null,"filter":"done = false","filter_include_nulls":false},"position":100,"bucket_configuration_mode":"none","bucket_configuration":null,"default_bucket_id":0,"done_bucket_id":0,"updated":"2025-09-17T01:25:11+02:00","created":"2025-09-17T01:25:11+02:00"},{"id":1568,"title":"Gantt","project_id":331,"view_kind":"gantt","filter":null,"position":200,"bucket_configuration_mode":"none","bucket_configuration":null,"default_bucket_id":0,"done_bucket_id":0,"updated":"2025-09-17T01:25:11+02:00","created":"2025-09-17T01:25:11+02:00"},{"id":1569,"title":"Table","project_id":331,"view_kind":"table","filter":null,"position":300,"bucket_configuration_mode":"none","bucket_configuration":null,"default_bucket_id":0,"done_bucket_id":0,"updated":"2025-09-17T01:25:11+02:00","created":"2025-09-17T01:25:11+02:00"},{"id":1570,"title":"Kanban","project_id":331,"view_kind":"kanban","filter":null,"position":400,"bucket_configuration_mode":"manual","bucket_configuration":null,"default_bucket_id":1006,"done_bucket_id":1008,"updated":"2025-09-17T01:25:11+02:00","created":"2025-09-17T01:25:11+02:00"}],"max_permission":0,"created":"0001-01-01T00:00:00Z","updated":"0001-01-01T00:00:00Z"},"task":{"id":2602,"title":"add a task","description":"","done":false,"done_at":"0001-01-01T00:00:00Z","due_date":"0001-01-01T00:00:00Z","reminders":null,"project_id":331,"repeat_after":0,"repeat_mode":0,"priority":0,"start_date":"0001-01-01T00:00:00Z","end_date":"0001-01-01T00:00:00Z","assignees":null,"labels":null,"hex_color":"","percent_done":0,"identifier":"#1","index":1,"related_tasks":{},"attachments":null,"cover_image_attachment_id":0,"is_favorite":false,"created":"2025-09-17T01:26:14+02:00","updated":"2025-09-17T01:26:14+02:00","bucket_id":0,"buckets":[{"id":1006,"title":"To-Do","project_view_id":1570,"limit":0,"count":0,"position":100,"created":"2025-09-17T01:25:11+02:00","updated":"2025-09-17T01:25:11+02:00","created_by":null}],"position":0,"reactions":null,"created_by":{"id":149,"name":"","username":"subsidizable-shavonda","created":"2025-09-17T01:24:35+02:00","updated":"2025-09-17T01:24:35+02:00"}}}}
@jjarboe commented on GitHub (Sep 16, 2025): I went to try.vikunja.io and was given the name "subsidizable-shavonda". I created a new project titled "This is the title of my project", available at https://try.vikunja.io/projects/331/1567, and configured webhooks to webhook.site. I created a task within the project, "add a task", then edited the project to add a description. Both sent webhooks and are included below. Note that the project object is zeroed out in both. I attached a screenshot of the changes I made to the project as well, so you can see that it has a color, description, etc. <img width="659" height="714" alt="Image" src="https://github.com/user-attachments/assets/07888316-e4be-4e55-81ab-317e8ba0e2cb" /> ```json {"event_name":"project.updated","time":"2025-09-16T23:27:10.153930501Z","data":{"doer":{"id":149,"name":"","username":"subsidizable-shavonda","created":"2025-09-17T01:24:35+02:00","updated":"2025-09-17T01:24:35+02:00"},"project":{"id":331,"title":"","description":"","identifier":"","hex_color":"","parent_project_id":0,"owner":null,"is_archived":false,"background_information":null,"background_blur_hash":"","is_favorite":false,"position":0,"views":[{"id":1567,"title":"List","project_id":331,"view_kind":"list","filter":{"s":"","sort_by":null,"order_by":null,"filter":"done = false","filter_include_nulls":false},"position":100,"bucket_configuration_mode":"none","bucket_configuration":null,"default_bucket_id":0,"done_bucket_id":0,"updated":"2025-09-17T01:25:11+02:00","created":"2025-09-17T01:25:11+02:00"},{"id":1568,"title":"Gantt","project_id":331,"view_kind":"gantt","filter":null,"position":200,"bucket_configuration_mode":"none","bucket_configuration":null,"default_bucket_id":0,"done_bucket_id":0,"updated":"2025-09-17T01:25:11+02:00","created":"2025-09-17T01:25:11+02:00"},{"id":1569,"title":"Table","project_id":331,"view_kind":"table","filter":null,"position":300,"bucket_configuration_mode":"none","bucket_configuration":null,"default_bucket_id":0,"done_bucket_id":0,"updated":"2025-09-17T01:25:11+02:00","created":"2025-09-17T01:25:11+02:00"},{"id":1570,"title":"Kanban","project_id":331,"view_kind":"kanban","filter":null,"position":400,"bucket_configuration_mode":"manual","bucket_configuration":null,"default_bucket_id":1006,"done_bucket_id":1008,"updated":"2025-09-17T01:25:11+02:00","created":"2025-09-17T01:25:11+02:00"}],"max_permission":0,"created":"0001-01-01T00:00:00Z","updated":"0001-01-01T00:00:00Z"}}} ``` ```json {"event_name":"task.created","time":"2025-09-16T23:26:14.808280043Z","data":{"doer":{"id":149,"name":"","username":"subsidizable-shavonda","created":"2025-09-17T01:24:35+02:00","updated":"2025-09-17T01:24:35+02:00"},"project":{"id":331,"title":"","description":"","identifier":"","hex_color":"","parent_project_id":0,"owner":null,"is_archived":false,"background_information":null,"background_blur_hash":"","is_favorite":false,"position":0,"views":[{"id":1567,"title":"List","project_id":331,"view_kind":"list","filter":{"s":"","sort_by":null,"order_by":null,"filter":"done = false","filter_include_nulls":false},"position":100,"bucket_configuration_mode":"none","bucket_configuration":null,"default_bucket_id":0,"done_bucket_id":0,"updated":"2025-09-17T01:25:11+02:00","created":"2025-09-17T01:25:11+02:00"},{"id":1568,"title":"Gantt","project_id":331,"view_kind":"gantt","filter":null,"position":200,"bucket_configuration_mode":"none","bucket_configuration":null,"default_bucket_id":0,"done_bucket_id":0,"updated":"2025-09-17T01:25:11+02:00","created":"2025-09-17T01:25:11+02:00"},{"id":1569,"title":"Table","project_id":331,"view_kind":"table","filter":null,"position":300,"bucket_configuration_mode":"none","bucket_configuration":null,"default_bucket_id":0,"done_bucket_id":0,"updated":"2025-09-17T01:25:11+02:00","created":"2025-09-17T01:25:11+02:00"},{"id":1570,"title":"Kanban","project_id":331,"view_kind":"kanban","filter":null,"position":400,"bucket_configuration_mode":"manual","bucket_configuration":null,"default_bucket_id":1006,"done_bucket_id":1008,"updated":"2025-09-17T01:25:11+02:00","created":"2025-09-17T01:25:11+02:00"}],"max_permission":0,"created":"0001-01-01T00:00:00Z","updated":"0001-01-01T00:00:00Z"},"task":{"id":2602,"title":"add a task","description":"","done":false,"done_at":"0001-01-01T00:00:00Z","due_date":"0001-01-01T00:00:00Z","reminders":null,"project_id":331,"repeat_after":0,"repeat_mode":0,"priority":0,"start_date":"0001-01-01T00:00:00Z","end_date":"0001-01-01T00:00:00Z","assignees":null,"labels":null,"hex_color":"","percent_done":0,"identifier":"#1","index":1,"related_tasks":{},"attachments":null,"cover_image_attachment_id":0,"is_favorite":false,"created":"2025-09-17T01:26:14+02:00","updated":"2025-09-17T01:26:14+02:00","bucket_id":0,"buckets":[{"id":1006,"title":"To-Do","project_view_id":1570,"limit":0,"count":0,"position":100,"created":"2025-09-17T01:25:11+02:00","updated":"2025-09-17T01:25:11+02:00","created_by":null}],"position":0,"reactions":null,"created_by":{"id":149,"name":"","username":"subsidizable-shavonda","created":"2025-09-17T01:24:35+02:00","updated":"2025-09-17T01:24:35+02:00"}}}} ```
Author
Owner

@jjarboe commented on GitHub (Sep 16, 2025):

Note that it appears the "bogus project" problem affects more than just the project.updated event. It affects at least project.updated and task.created as seen above.

@jjarboe commented on GitHub (Sep 16, 2025): Note that it appears the "bogus project" problem affects more than just the project.updated event. It affects at least project.updated and task.created as seen above.
Author
Owner

@kolaente commented on GitHub (Sep 17, 2025):

Fixed in fb426a6e22, please check with the next unstable build (should be ready for deployment in ~30min, also on try).

@kolaente commented on GitHub (Sep 17, 2025): Fixed in https://github.com/go-vikunja/vikunja/commit/fb426a6e22df80ec95173ce7b24a81cb6758464f, please check with the next unstable build (should be ready for deployment in ~30min, also on [try](https://try.vikunja.io)).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/vikunja#2345