[GH-ISSUE #2012] Bug: API returns success on PATCH /api/v1/bookmarks/{id} but does not persist data #1252

Closed
opened 2026-03-02 11:56:05 +03:00 by kerem · 1 comment
Owner

Originally created by @dustin-olenslager on GitHub (Oct 5, 2025).
Original GitHub issue: https://github.com/karakeep-app/karakeep/issues/2012

Describe the Bug

Hello,

I've discovered an issue where the API doesn't seem to be persisting updates to bookmarks, even though it returns a success code.

What is happening:

When I send a PATCH request to the /api/v1/bookmarks/{id} endpoint to update the URL of a bookmark, the API returns a success code (e.g., 200 OK). However, when I immediately make a GET request for that same bookmark, the response shows that the URL has not been changed.

Steps to Reproduce

Identify a bookmark with a known ID that has a URL with query parameters. Let's use ID: jecwzxboncz0qn3vnnp1vzyq.

Make a GET request to /api/v1/bookmarks/jecwzxboncz0qn3vnnp1vzyq. The server returns the bookmark with the original, unclean URL.

Make a PATCH request to /api/v1/bookmarks/jecwzxboncz0qn3vnnp1vzyq with the following JSON payload and a valid Bearer token:

JSON

{
"content": {
"url": "https://pre.dev/"
}
}
The API responds with a success status code (200 OK).

Immediately make another GET request to /api/v1/bookmarks/jecwzxboncz0qn3vnnp1vzyq.

Expected Behaviour

The second GET request should return the bookmark object with the url field updated to https://pre.dev/.

Screenshots or Additional Context

The second GET request returns the bookmark object with the original, unchanged URL that still contains all the query parameters.

Device Details

Environment: Karakeep running as a Docker container on Unraid. Authentication is via Bearer token. This suggests that the PATCH endpoint is not correctly committing the updated data to the database.

Exact Karakeep Version

v0.27.1

Have you checked the troubleshooting guide?

  • I have checked the troubleshooting guide and I haven't found a solution to my problem
Originally created by @dustin-olenslager on GitHub (Oct 5, 2025). Original GitHub issue: https://github.com/karakeep-app/karakeep/issues/2012 ### Describe the Bug Hello, I've discovered an issue where the API doesn't seem to be persisting updates to bookmarks, even though it returns a success code. What is happening: When I send a PATCH request to the /api/v1/bookmarks/{id} endpoint to update the URL of a bookmark, the API returns a success code (e.g., 200 OK). However, when I immediately make a GET request for that same bookmark, the response shows that the URL has not been changed. ### Steps to Reproduce Identify a bookmark with a known ID that has a URL with query parameters. Let's use ID: jecwzxboncz0qn3vnnp1vzyq. Make a GET request to /api/v1/bookmarks/jecwzxboncz0qn3vnnp1vzyq. The server returns the bookmark with the original, unclean URL. Make a PATCH request to /api/v1/bookmarks/jecwzxboncz0qn3vnnp1vzyq with the following JSON payload and a valid Bearer token: JSON { "content": { "url": "https://pre.dev/" } } The API responds with a success status code (200 OK). Immediately make another GET request to /api/v1/bookmarks/jecwzxboncz0qn3vnnp1vzyq. ### Expected Behaviour The second GET request should return the bookmark object with the url field updated to https://pre.dev/. ### Screenshots or Additional Context The second GET request returns the bookmark object with the original, unchanged URL that still contains all the query parameters. ### Device Details Environment: Karakeep running as a Docker container on Unraid. Authentication is via Bearer token. This suggests that the PATCH endpoint is not correctly committing the updated data to the database. ### Exact Karakeep Version v0.27.1 ### Have you checked the troubleshooting guide? - [x] I have checked the troubleshooting guide and I haven't found a solution to my problem
kerem 2026-03-02 11:56:05 +03:00
Author
Owner

@MohamedBassem commented on GitHub (Oct 11, 2025):

Hey, I think the problem is in the body of your request. The PATCH API doesn't take a content key. It accepts the URL directly. Check the api docs here: https://docs.karakeep.app/api/update-a-bookmark

<!-- gh-comment-id:3393282883 --> @MohamedBassem commented on GitHub (Oct 11, 2025): Hey, I think the problem is in the body of your request. The PATCH API doesn't take a `content` key. It accepts the URL directly. Check the api docs here: https://docs.karakeep.app/api/update-a-bookmark
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/karakeep#1252
No description provided.