[GH-ISSUE #1277] Unsupported GET-request to mutation procedure at path (apiKeys.validate or apiKeys.exchange) #821

Closed
opened 2026-03-02 11:53:01 +03:00 by kerem · 9 comments
Owner

Originally created by @jminke on GitHub (Apr 17, 2025).
Original GitHub issue: https://github.com/karakeep-app/karakeep/issues/1277

Describe the Bug

When trying to access Karakeep with the iOS app or Mac OS app, I get an error with both Email/Password and API Key:
Unsupported GET-request to mutation procedure at path (apiKeys.validate or apiKeys.exchange)

Image

Does anyone know how to fix this error?

Accessing Karakeep with the browser on the same device works fine.

Steps to Reproduce

  1. Login with iOS or Mac OS app
  2. Login doesn't work, see error

Expected Behaviour

Login works properly

Screenshots or Additional Context

No response

Device Details

iphone 16 and Macbook Pro

Exact Karakeep Version

v0.23.2

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 @jminke on GitHub (Apr 17, 2025). Original GitHub issue: https://github.com/karakeep-app/karakeep/issues/1277 ### Describe the Bug When trying to access Karakeep with the iOS app or Mac OS app, I get an error with both Email/Password and API Key: Unsupported GET-request to mutation procedure at path (apiKeys.validate or apiKeys.exchange) <img width="512" alt="Image" src="https://github.com/user-attachments/assets/06b12217-6ab7-4ce7-83e0-dbd4504d7ea1" /> Does anyone know how to fix this error? Accessing Karakeep with the browser on the same device works fine. ### Steps to Reproduce 1. Login with iOS or Mac OS app 2. Login doesn't work, see error ### Expected Behaviour Login works properly ### Screenshots or Additional Context _No response_ ### Device Details iphone 16 and Macbook Pro ### Exact Karakeep Version v0.23.2 ### 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:53:01 +03:00
Author
Owner

@MohamedBassem commented on GitHub (Apr 17, 2025):

This is VERY surprising. Are you running karakeep behind a reverse proxy? Any chance this reverse proxy is misconfigured?

Can you click on the connection debugging button and share the output?

Also you mentioned a macos app, what app are you referring to, we don’t have a macos app.

<!-- gh-comment-id:2813193299 --> @MohamedBassem commented on GitHub (Apr 17, 2025): This is VERY surprising. Are you running karakeep behind a reverse proxy? Any chance this reverse proxy is misconfigured? Can you click on the connection debugging button and share the output? Also you mentioned a macos app, what app are you referring to, we don’t have a macos app.
Author
Owner

@jminke commented on GitHub (Apr 17, 2025):

It is very possible I misconfigured someting! But why is it working with the browser?
I used cloudflare point a subdomain to karakeep.

The diagnostics shows me this:

Running connection test ...
Using address: http://******
ALL GOOD

I got the Mac OS app from here (it just allowed me to install normally on mac): https://apps.apple.com/us/app/karakeep-app/id6479258022

Since there is no add-on for Edge, and my company prevents installation of chrome extensions, I can only use the app.

<!-- gh-comment-id:2813227465 --> @jminke commented on GitHub (Apr 17, 2025): It is very possible I misconfigured someting! But why is it working with the browser? I used cloudflare point a subdomain to karakeep. The diagnostics shows me this: > Running connection test ... > Using address: http://****** > ALL GOOD I got the Mac OS app from here (it just allowed me to install normally on mac): https://apps.apple.com/us/app/karakeep-app/id6479258022 Since there is no add-on for Edge, and my company prevents installation of chrome extensions, I can only use the app.
Author
Owner

@MohamedBassem commented on GitHub (Apr 17, 2025):

hmmm interesting. The web browser doesn’t use this endpoint, but other mutation endpoints should fail with the same error (I assume you already tried to add a bookmark on the web browser and it worked).

Basically somehow the POST requests sent from the app are converted into GET requests somehow. To rule out network problems, can you try the ios app from a different network? E.g mobile data or something?

<!-- gh-comment-id:2813264975 --> @MohamedBassem commented on GitHub (Apr 17, 2025): hmmm interesting. The web browser doesn’t use this endpoint, but other mutation endpoints should fail with the same error (I assume you already tried to add a bookmark on the web browser and it worked). Basically somehow the POST requests sent from the app are converted into GET requests somehow. To rule out network problems, can you try the ios app from a different network? E.g mobile data or something?
Author
Owner

@jminke commented on GitHub (Apr 17, 2025):

From another network, the browser works fine (both my phone and desktop are using different networks). Adding bookmarks also works (again adding them directly in the website, not with the plugin/add-on since I can't run chrome or firefox).

If I enable vpn on my phone to access my local network, the iOS app does work by entering the local IP address and port of the machine running karakeep.

<!-- gh-comment-id:2813289623 --> @jminke commented on GitHub (Apr 17, 2025): From another network, the browser works fine (both my phone and desktop are using different networks). Adding bookmarks also works (again adding them directly in the website, not with the plugin/add-on since I can't run chrome or firefox). If I enable vpn on my phone to access my local network, the iOS app does work by entering the local IP address and port of the machine running karakeep.
Author
Owner

@MohamedBassem commented on GitHub (Apr 17, 2025):

ok, so now we now it’s a networking issue. How are you tunneling to your network without vpn? Cloudflare tunnels? Is there a chance that the network you’re running on (assuming it’s a corporate network or something) has some rules/proxy that’s screwing up the requests that gets bypassed when you’re using a vpn?

<!-- gh-comment-id:2813301831 --> @MohamedBassem commented on GitHub (Apr 17, 2025): ok, so now we now it’s a networking issue. How are you tunneling to your network without vpn? Cloudflare tunnels? Is there a chance that the network you’re running on (assuming it’s a corporate network or something) has some rules/proxy that’s screwing up the requests that gets bypassed when you’re using a vpn?
Author
Owner

@jminke commented on GitHub (Apr 17, 2025):

I added a bypass rule on cloudflare tunnel to avoid the TOTP check to enter karakeep, that (seems at least) to work since I could properly enter with the browser.

Regarding outside traffic: even with my mobile phone I get the same error, so it doesn't look like there is a corporate proxy screwing up something. As you said it's probably a network config issue on my server, I need to investigate better what mess I created.

<!-- gh-comment-id:2813395252 --> @jminke commented on GitHub (Apr 17, 2025): I added a bypass rule on cloudflare tunnel to avoid the TOTP check to enter karakeep, that (seems at least) to work since I could properly enter with the browser. Regarding outside traffic: even with my mobile phone I get the same error, so it doesn't look like there is a corporate proxy screwing up something. As you said it's probably a network config issue on my server, I need to investigate better what mess I created.
Author
Owner

@MohamedBassem commented on GitHub (Apr 17, 2025):

@jminke Ah, if you have cloudflare access enabled, this screws up mobile APIs (though it usually fails in a different way). We have a FR to allow passing custom headers to bypass cloudflare access but it’s not there yet. For now, you’ll have to bypass everything under /api/v1/**

<!-- gh-comment-id:2813400992 --> @MohamedBassem commented on GitHub (Apr 17, 2025): @jminke Ah, if you have cloudflare access enabled, this screws up mobile APIs (though it usually fails in a different way). We have a FR to allow passing custom headers to bypass cloudflare access but it’s not there yet. For now, you’ll have to bypass everything under /api/v1/**
Author
Owner

@MohamedBassem commented on GitHub (Apr 17, 2025):

Given that this is a karakeep bug, closing this for now.

<!-- gh-comment-id:2813823955 --> @MohamedBassem commented on GitHub (Apr 17, 2025): Given that this is a karakeep bug, closing this for now.
Author
Owner

@jminke commented on GitHub (Apr 22, 2025):

Thanks for the support and sorry for the trouble here where karakeep was not the fault one.

Btw. your last sentence should say "... this is NOT a karakeep bug"

<!-- gh-comment-id:2820281767 --> @jminke commented on GitHub (Apr 22, 2025): Thanks for the support and sorry for the trouble here where karakeep was not the fault one. Btw. your last sentence should say "... this is NOT a karakeep bug"
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#821
No description provided.