NSURLErrorDomain Code=-1000 Error When Refreshing Timeline Using Metatext on WP Site
I attempted to use the Metatext app on iOS to log in to my WordPress site where enable-mastodon-apps is installed. The login process worked fine; however, after signing in, whenever I try to refresh the timeline, the app returns an error:
NSURLErrorDomain Code=-1000
Steps to Reproduce:
- Use the Metatext iOS app to log in to a WordPress site with the enable-mastodon-apps plugin enabled.
- After a successful login, refresh the timeline.
- Observe the error message returned.
Expected Behavior:
The timeline should refresh without error after logging in.
Actual Behavior:
The timeline refresh attempt results in the error NSURLErrorDomain Code=-1000.
Additional Context:
Since the Metatext app is functioning correctly on other instances, I suspect the issue might be related to the JSON response from the WordPress site—notably, how enable-mastodon-apps is handling or outputting the expected JSON data for the Mastodon API endpoints.
Any help investigating this issue would be appreciated. Please let me know if you need further details or logs to diagnose the problem.
Looking forward to your feedback.
Thanks for reporting and sorry about the trouble! Could you turn on debugging as described in https://github.com/akirk/enable-mastodon-apps/wiki/Debugging-broken-HTTP-Requests and report back what requests you are seeing there?
Thank you! What I see there:
Metatext [2025-05-08 02:55:30.667] 200 GET /api/v1/filters current_user 1 app \Enable_Mastodon_Apps\Mastodon_App::__set_state(array( 'term' => \WP_Term::__set_state(array( 'term_id' => 4397, 'name' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'slug' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'term_group' => 0, 'term_taxonomy_id' => 4397, 'taxonomy' => 'mastodon-app', 'description' => '', 'parent' => 0, 'count' => 0, 'filter' => 'raw', )), )) Metatext [2025-05-08 02:55:30.676] 200 GET /api/v1/lists current_user 1 app \Enable_Mastodon_Apps\Mastodon_App::__set_state(array( 'term' => \WP_Term::__set_state(array( 'term_id' => 4397, 'name' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'slug' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'term_group' => 0, 'term_taxonomy_id' => 4397, 'taxonomy' => 'mastodon-app', 'description' => '', 'parent' => 0, 'count' => 0, 'filter' => 'raw', )), )) Metatext [2025-05-08 02:55:30.811] 200 GET /api/v1/accounts/verify_credentials current_user 1 app \Enable_Mastodon_Apps\Mastodon_App::__set_state(array( 'term' => \WP_Term::__set_state(array( 'term_id' => 4397, 'name' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'slug' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'term_group' => 0, 'term_taxonomy_id' => 4397, 'taxonomy' => 'mastodon-app', 'description' => '', 'parent' => 0, 'count' => 0, 'filter' => 'raw', )), )) Metatext [2025-05-08 02:55:32.026] 200 GET /api/v1/announcements params array ( 'with_dismissed' => false, ) current_user 1 app \Enable_Mastodon_Apps\Mastodon_App::__set_state(array( 'term' => \WP_Term::__set_state(array( 'term_id' => 4397, 'name' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'slug' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'term_group' => 0, 'term_taxonomy_id' => 4397, 'taxonomy' => 'mastodon-app', 'description' => '', 'parent' => 0, 'count' => 0, 'filter' => 'raw', )), )) Metatext [2025-05-08 02:55:32.091] 200 GET /api/v1/custom_emojis current_user 1 app \Enable_Mastodon_Apps\Mastodon_App::__set_state(array( 'term' => \WP_Term::__set_state(array( 'term_id' => 4397, 'name' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'slug' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'term_group' => 0, 'term_taxonomy_id' => 4397, 'taxonomy' => 'mastodon-app', 'description' => '', 'parent' => 0, 'count' => 0, 'filter' => 'raw', )), )) Metatext [2025-05-08 02:55:32.221] 200 GET /api/v1/preferences current_user 1 app \Enable_Mastodon_Apps\Mastodon_App::__set_state(array( 'term' => \WP_Term::__set_state(array( 'term_id' => 4397, 'name' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'slug' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'term_group' => 0, 'term_taxonomy_id' => 4397, 'taxonomy' => 'mastodon-app', 'description' => '', 'parent' => 0, 'count' => 0, 'filter' => 'raw', )), )) Metatext [2025-05-08 02:55:32.335] 200 GET /api/v1/timelines/public?local=true params array ( 'limit' => 20, 'local' => 'true', ) current_user 1 app \Enable_Mastodon_Apps\Mastodon_App::__set_state(array( 'term' => \WP_Term::__set_state(array( 'term_id' => 4397, 'name' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'slug' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'term_group' => 0, 'term_taxonomy_id' => 4397, 'taxonomy' => 'mastodon-app', 'description' => '', 'parent' => 0, 'count' => 0, 'filter' => 'raw', )), )) Metatext [2025-05-08 02:55:32.718] 200 GET /api/v1/instance current_user 1 app \Enable_Mastodon_Apps\Mastodon_App::__set_state(array( 'term' => \WP_Term::__set_state(array( 'term_id' => 4397, 'name' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'slug' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'term_group' => 0, 'term_taxonomy_id' => 4397, 'taxonomy' => 'mastodon-app', 'description' => '', 'parent' => 0, 'count' => 0, 'filter' => 'raw', )), )) Metatext [2025-05-08 02:55:34.727] 200 GET /api/v1/timelines/home params array ( 'limit' => 20, ) current_user 1 app \Enable_Mastodon_Apps\Mastodon_App::__set_state(array( 'term' => \WP_Term::__set_state(array( 'term_id' => 4397, 'name' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'slug' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'term_group' => 0, 'term_taxonomy_id' => 4397, 'taxonomy' => 'mastodon-app', 'description' => '', 'parent' => 0, 'count' => 0, 'filter' => 'raw', )), )) Metatext [2025-05-08 02:55:49.324] 200 GET /api/v1/timelines/public?local=true params array ( 'limit' => 20, 'local' => 'true', ) current_user 1 app \Enable_Mastodon_Apps\Mastodon_App::__set_state(array( 'term' => \WP_Term::__set_state(array( 'term_id' => 4397, 'name' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'slug' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'term_group' => 0, 'term_taxonomy_id' => 4397, 'taxonomy' => 'mastodon-app', 'description' => '', 'parent' => 0, 'count' => 0, 'filter' => 'raw', )), )) Metatext [2025-05-08 02:55:58.854] 200 GET /api/v1/announcements params array ( 'with_dismissed' => false, ) current_user 1 app \Enable_Mastodon_Apps\Mastodon_App::__set_state(array( 'term' => \WP_Term::__set_state(array( 'term_id' => 4397, 'name' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'slug' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'term_group' => 0, 'term_taxonomy_id' => 4397, 'taxonomy' => 'mastodon-app', 'description' => '', 'parent' => 0, 'count' => 0, 'filter' => 'raw', )), )) Metatext [2025-05-08 02:55:58.949] 200 GET /api/v1/accounts/verify_credentials current_user 1 app \Enable_Mastodon_Apps\Mastodon_App::__set_state(array( 'term' => \WP_Term::__set_state(array( 'term_id' => 4397, 'name' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'slug' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'term_group' => 0, 'term_taxonomy_id' => 4397, 'taxonomy' => 'mastodon-app', 'description' => '', 'parent' => 0, 'count' => 0, 'filter' => 'raw', )), )) Metatext [2025-05-08 02:55:59.802] 200 GET /api/v1/lists current_user 1 app \Enable_Mastodon_Apps\Mastodon_App::__set_state(array( 'term' => \WP_Term::__set_state(array( 'term_id' => 4397, 'name' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'slug' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'term_group' => 0, 'term_taxonomy_id' => 4397, 'taxonomy' => 'mastodon-app', 'description' => '', 'parent' => 0, 'count' => 0, 'filter' => 'raw', )), )) Metatext [2025-05-08 02:55:59.882] 200 GET /api/v1/custom_emojis current_user 1 app \Enable_Mastodon_Apps\Mastodon_App::__set_state(array( 'term' => \WP_Term::__set_state(array( 'term_id' => 4397, 'name' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'slug' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'term_group' => 0, 'term_taxonomy_id' => 4397, 'taxonomy' => 'mastodon-app', 'description' => '', 'parent' => 0, 'count' => 0, 'filter' => 'raw', )), )) Metatext [2025-05-08 02:56:00.089] 200 GET /api/v1/filters current_user 1 app \Enable_Mastodon_Apps\Mastodon_App::__set_state(array( 'term' => \WP_Term::__set_state(array( 'term_id' => 4397, 'name' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'slug' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'term_group' => 0, 'term_taxonomy_id' => 4397, 'taxonomy' => 'mastodon-app', 'description' => '', 'parent' => 0, 'count' => 0, 'filter' => 'raw', )), )) Metatext [2025-05-08 02:56:01.065] 200 GET /api/v1/instance current_user 1 app \Enable_Mastodon_Apps\Mastodon_App::__set_state(array( 'term' => \WP_Term::__set_state(array( 'term_id' => 4397, 'name' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'slug' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'term_group' => 0, 'term_taxonomy_id' => 4397, 'taxonomy' => 'mastodon-app', 'description' => '', 'parent' => 0, 'count' => 0, 'filter' => 'raw', )), )) Metatext [2025-05-08 02:56:01.301] 200 GET /api/v1/preferences current_user 1 app \Enable_Mastodon_Apps\Mastodon_App::__set_state(array( 'term' => \WP_Term::__set_state(array( 'term_id' => 4397, 'name' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'slug' => '9ervebsgm6j1p16greqvvmmmqebp0mli', 'term_group' => 0, 'term_taxonomy_id' => 4397, 'taxonomy' => 'mastodon-app', 'description' => '', 'parent' => 0, 'count' => 0, 'filter' => 'raw', )), ))
After above, I tried a few other clients and observed the following behavior:
-
Fread (app's official account: @[email protected]))
- I can log in, but when I refresh the home timeline I get:
Socket timeout has expired [url=https://xxx.com/api/v1/timelines/home?limit=60, socket_timeout=unknown] ms - Refreshing the local timeline errors with:
Socket timeout has expired [url=https://xxx.com/api/v1/timelines/public?only_media=false&local=true&remote=false&limit=60, socket_timeout=unknown] ms - Refreshing the federated timeline errors with:
Socket timeout has expired [url=https://xxx.com/api/v1/timelines/public?only_media=false&local=false&remote=true&limit=60, socket_timeout=unknown] ms
- I can log in, but when I refresh the home timeline I get:
-
Mastodon gGmbH's Mastodon iOS client
- I can see my own posts in the timeline (although it doesn’t show posts from other users I’m following via the WordPress Friends plugin, by the way).
- However, when I try to send a post and tap “Publish,” I get:
invalid-entity, not one of Enable_Mastodon_Apps\Entity\Status
Thanks for all the testing! In #256 I have improved the debugger because I don't think we got all the information we needed above. Could you update EMA to 1.4.4 and try the debugging again? Maybe also update Friends to the newest version (3.4.9). Thanks!
I updated the plugin. What I see when trying Metatext:
Metatext [2025-05-09 08:16:19.382] 200 GET /api/v1/markers?timeline%5B%5D=notifications params = { "timeline": [ "notifications" ] } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } Metatext [2025-05-09 08:16:18.636] 200 GET /api/v1/notifications params = { "limit": 40 } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } Metatext [2025-05-09 08:16:06.914] 200 GET /api/v2/search?q=%E5%95%8A&resolve=true&limit=5 params = { "type": "", "resolve": true, "limit": 5, "offset": 0, "q": "啊" } current_user = 1 calls = { "class-mastodon-api.php:1933": "have_token_permission()" } Debugger [2025-05-09 08:16:05.115] 404 GET /api/v1/trends current_user = 0 calls = { "class-mastodon-api.php:1863": "log_404s()" } user_agent = "Metatext/2 CFNetwork/3826.500.111.2.2 Darwin/24.4.0" status = 404 Metatext [2025-05-09 08:16:04.230] 200 GET /api/v1/instance current_user = 1 calls = { "class-mastodon-api.php:1840": "public_api_permission()" } Metatext [2025-05-09 08:15:50.576] 200 GET /api/v1/timelines/public?local=false params = { "limit": 20, "local": "false" } current_user = 1 calls = { "class-mastodon-api.php:1840": "public_api_permission()" } Metatext [2025-05-09 08:15:17.479] 200 GET /api/v1/timelines/public?local=true params = { "limit": 20, "local": "true" } current_user = 1 calls = { "class-mastodon-api.php:1840": "public_api_permission()" } Metatext [2025-05-09 08:14:48.174] 200 GET /api/v1/timelines/home params = { "limit": 20 } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } Metatext [2025-05-09 08:14:46.798] 200 GET /api/v1/accounts/verify_credentials params = { "user_id": 1 } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } Metatext [2025-05-09 08:14:46.635] 200 GET /api/v1/markers?timeline%5B%5D=notifications params = { "timeline": [ "notifications" ] } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } Debugger [2025-05-09 08:14:46.603] 404 GET /api/v1/trends current_user = 0 calls = { "class-mastodon-api.php:1863": "log_404s()" } user_agent = "Metatext/2 CFNetwork/3826.500.111.2.2 Darwin/24.4.0" status = 404 Metatext [2025-05-09 08:14:46.568] 200 GET /api/v1/markers?timeline%5B%5D=notifications params = { "timeline": [ "notifications" ] } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } Metatext [2025-05-09 08:14:46.518] 200 GET /api/v1/lists current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } Metatext [2025-05-09 08:14:46.514] 200 GET /api/v1/notifications params = { "limit": 40 } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } Metatext [2025-05-09 08:14:46.444] 200 GET /api/v1/filters current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } Metatext [2025-05-09 08:14:46.347] 200 GET /api/v1/instance current_user = 1 calls = { "class-mastodon-api.php:1840": "public_api_permission()" } Metatext [2025-05-09 08:14:46.318] 200 GET /api/v1/preferences current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } Metatext [2025-05-09 08:14:46.280] 200 GET /api/v1/instance current_user = 1 calls = { "class-mastodon-api.php:1840": "public_api_permission()" } Metatext [2025-05-09 08:14:46.263] 200 GET /api/v1/notifications params = { "limit": 40 } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } Metatext [2025-05-09 08:14:46.205] 200 GET /api/v1/custom_emojis current_user = 1 calls = { "class-mastodon-api.php:1840": "public_api_permission()" } Metatext [2025-05-09 08:14:46.123] 200 GET /api/v1/announcements params = { "with_dismissed": false } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } Metatext [2025-05-09 08:14:37.560] 200 GET /api/v1/conversations params = { "limit": 40 } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" }
What I see when trying Mastodon for iOS (I attempted to open the timelines for 'Followed,' 'Local,' and 'Federated,' and finally tried to publish a toot visible only to myself. However, I encountered the following error: friends_messages_mastodon_api_submit_status: Direct message without a known mentioned user):
Mastodon for iOS [2025-05-09 08:18:45.679] 200 POST /api/v1/statuses params = { "visibility": "direct", "status": "test", "sensitive": false, "language": "en" } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } Mastodon for iOS [2025-05-09 08:18:39.254] 200 GET /api/v1/timelines/public?local=true&since_id=329625 params = { "limit": 20, "local": "true", "since_id": "329625" } current_user = 1 calls = { "class-mastodon-api.php:1840": "public_api_permission()" } Mastodon for iOS [2025-05-09 08:18:32.603] 200 GET /api/v1/custom_emojis current_user = 1 calls = { "class-mastodon-api.php:1840": "public_api_permission()" } Mastodon for iOS [2025-05-09 08:18:32.554] 200 GET /api/v1/custom_emojis current_user = 1 calls = { "class-mastodon-api.php:1840": "public_api_permission()" } Debugger [2025-05-09 08:18:12.361] 404 GET /api/v1/blocks current_user = 0 calls = { "class-mastodon-api.php:1863": "log_404s()" } user_agent = "mastodon-ios/2025.02" status = 404 Debugger [2025-05-09 08:18:07.941] 404 GET /api/v1/blocks current_user = 0 calls = { "class-mastodon-api.php:1863": "log_404s()" } user_agent = "mastodon-ios/2025.02" status = 404 Mastodon for iOS [2025-05-09 08:18:07.076] 400 GET /api/v1/notifications?types%5B%5D=follow&types%5B%5D=follow_request&types%5B%5D=mention&types%5B%5D=reblog&types%5B%5D=favourite&types%5B%5D=poll&types%5B%5D=status&types%5B%5D=moderation_warning params = { "limit": 40, "types": [ "follow", "follow_request", "mention", "reblog", "favourite", "poll", "status", "moderation_warning" ] } current_user = 1 calls = { "class-mastodon-api.php:146": "reformat_error_response()", "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } errors = { "rest_invalid_param": "無效的參數: types" } status = 400 Mastodon for iOS [2025-05-09 08:18:06.497] 200 GET /api/v2/search?type=&q=%E5%95%8A&resolve=true params = { "type": "", "resolve": true, "limit": 40, "offset": 0, "q": "啊" } current_user = 1 calls = { "class-mastodon-api.php:1933": "have_token_permission()" } Mastodon for iOS [2025-05-09 08:18:06.220] 200 GET /api/v1/timelines/home?limit=100 params = { "limit": 100 } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } Mastodon for iOS [2025-05-09 08:18:05.880] 200 GET /api/v1/accounts/1/following params = { "limit": 40, "user_id": "1" } current_user = 1 calls = { "class-mastodon-api.php:1840": "public_api_permission()" } Mastodon for iOS [2025-05-09 08:18:05.374] 200 GET /api/v2/search?type=&q=%E5%95%8A&resolve=true params = { "type": "", "resolve": true, "limit": 40, "offset": 0, "q": "啊" } current_user = 1 calls = { "class-mastodon-api.php:1933": "have_token_permission()" } Mastodon for iOS [2025-05-09 08:18:05.370] 200 GET /api/v2/search?type=&q=%E5%95%8A&resolve=true params = { "type": "", "resolve": true, "limit": 40, "offset": 0, "q": "啊" } current_user = 1 calls = { "class-mastodon-api.php:1933": "have_token_permission()" } Mastodon for iOS [2025-05-09 08:18:04.168] 200 GET /api/v2/search?type=&q=a&resolve=true params = { "type": "", "resolve": true, "limit": 40, "offset": 0, "q": "a" } current_user = 1 calls = { "class-mastodon-api.php:1933": "have_token_permission()" } Mastodon for iOS [2025-05-09 08:18:02.996] 200 GET /api/v1/accounts/1/following params = { "limit": 40, "user_id": "1" } current_user = 1 calls = { "class-mastodon-api.php:1840": "public_api_permission()" } Mastodon for iOS [2025-05-09 08:18:01.243] 200 GET /api/v1/filters current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } Mastodon for iOS [2025-05-09 08:18:00.520] 400 GET /api/v1/notifications?types%5B%5D=follow&types%5B%5D=follow_request&types%5B%5D=mention&types%5B%5D=reblog&types%5B%5D=favourite&types%5B%5D=poll&types%5B%5D=status&types%5B%5D=moderation_warning params = { "limit": 40, "types": [ "follow", "follow_request", "mention", "reblog", "favourite", "poll", "status", "moderation_warning" ] } current_user = 1 calls = { "class-mastodon-api.php:146": "reformat_error_response()", "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } errors = { "rest_invalid_param": "無效的參數: types" } status = 400 Mastodon for iOS [2025-05-09 08:18:00.468] 400 GET /api/v1/notifications?types%5B%5D=follow&types%5B%5D=follow_request&types%5B%5D=mention&types%5B%5D=reblog&types%5B%5D=favourite&types%5B%5D=poll&types%5B%5D=status&types%5B%5D=moderation_warning params = { "limit": 40, "types": [ "follow", "follow_request", "mention", "reblog", "favourite", "poll", "status", "moderation_warning" ] } current_user = 1 calls = { "class-mastodon-api.php:146": "reformat_error_response()", "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } errors = { "rest_invalid_param": "無效的參數: types" } status = 400 Mastodon for iOS [2025-05-09 08:17:56.270] 200 GET /api/v1/timelines/home?limit=100 params = { "limit": 100 } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } Debugger [2025-05-09 08:17:53.850] 404 GET /api/v1/trends/links current_user = 0 calls = { "class-mastodon-api.php:1863": "log_404s()" } user_agent = "mastodon-ios/2025.02" status = 404 Mastodon for iOS [2025-05-09 08:17:52.630] 200 GET /api/v1/trends/statuses params = { "limit": 20, "offset": 0 } current_user = 1 calls = { "class-mastodon-api.php:1840": "public_api_permission()" } Mastodon for iOS [2025-05-09 08:17:52.352] 200 GET /api/v1/trends/statuses params = { "limit": 20, "offset": 0 } current_user = 1 calls = { "class-mastodon-api.php:1840": "public_api_permission()" } Mastodon for iOS [2025-05-09 08:17:51.471] 200 GET /api/v1/accounts/verify_credentials params = { "user_id": 1 } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } Mastodon for iOS [2025-05-09 08:17:51.466] 200 GET /api/v1/accounts/verify_credentials params = { "user_id": 1 } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } Mastodon for iOS [2025-05-09 08:17:50.584] 200 GET /api/v1/markers?timeline%5B%5D=home&timeline%5B%5D=notifications params = { "timeline": [ "home", "notifications" ] } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } Mastodon for iOS [2025-05-09 08:17:50.276] 200 GET /api/v1/markers?timeline%5B%5D=home&timeline%5B%5D=notifications params = { "timeline": [ "home", "notifications" ] } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } Debugger [2025-05-09 08:17:49.920] 404 GET /api/v2/notifications/policy current_user = 0 calls = { "class-mastodon-api.php:1863": "log_404s()" } user_agent = "mastodon-ios/2025.02" status = 404 Mastodon for iOS [2025-05-09 08:17:49.831] 200 GET /api/v1/instance current_user = 1 calls = { "class-mastodon-api.php:1840": "public_api_permission()" } Debugger [2025-05-09 08:17:49.796] 404 GET /api/v2/filters current_user = 0 calls = { "class-mastodon-api.php:1863": "log_404s()" } user_agent = "mastodon-ios/2025.02" status = 404
What I see when trying Fread:
fread xyz (auto-generated) [2025-05-09 08:27:03.418] 200 GET /api/v1/timelines/home?limit=60 params = { "limit": 60 } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } fread xyz (auto-generated) [2025-05-09 08:27:01.311] 200 GET /api/v1/trends/statuses?limit=60&offset=0 params = { "limit": 60, "offset": 0 } current_user = 1 calls = { "class-mastodon-api.php:1840": "public_api_permission()" } fread xyz (auto-generated) [2025-05-09 08:27:00.089] 200 GET /api/v1/lists current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } fread xyz (auto-generated) [2025-05-09 08:26:59.683] 200 POST /api/v1/push/subscription params = { "subscription": { "endpoint": "https://api.fread.xyz/push/relay/send/f672afdb-7d2d-41a2-88bd-1a7784114cf5/MQ==", "keys": { "p256dh": "BEfhYmr3-UjM4vuBFZXYLgmso7aqR99ZLk9GKjwWzuMqBgXbk14dNYeNKiE8VXV22MlJEAqhgeqQ5Nv7p6mzaqY", "auth": "hCmfNLnMwqcItvGPM6sJBQ" } }, "data": { "alerts": { "mention": true, "status": true, "reblog": true, "follow": true, "follow_request": true, "favourite": true, "poll": true, "update": true }, "policy": "all" } } json = { "subscription": { "endpoint": "https://api.fread.xyz/push/relay/send/f672afdb-7d2d-41a2-88bd-1a7784114cf5/MQ==", "keys": { "p256dh": "BEfhYmr3-UjM4vuBFZXYLgmso7aqR99ZLk9GKjwWzuMqBgXbk14dNYeNKiE8VXV22MlJEAqhgeqQ5Nv7p6mzaqY", "auth": "hCmfNLnMwqcItvGPM6sJBQ" } }, "data": { "alerts": { "mention": true, "status": true, "reblog": true, "follow": true, "follow_request": true, "favourite": true, "poll": true, "update": true }, "policy": "all" } } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } fread xyz (auto-generated) [2025-05-09 08:26:58.186] 200 GET /api/v1/timelines/public?only_media=false&local=false&remote=true&limit=60 params = { "limit": 60, "only_media": "false", "local": "false", "remote": "true" } current_user = 1 calls = { "class-mastodon-api.php:1840": "public_api_permission()" } fread xyz (auto-generated) [2025-05-09 08:26:58.170] 200 GET /api/v1/timelines/public?only_media=false&local=true&remote=false&limit=60 params = { "limit": 60, "only_media": "false", "local": "true", "remote": "false" } current_user = 1 calls = { "class-mastodon-api.php:1840": "public_api_permission()" } fread xyz (auto-generated) [2025-05-09 08:26:49.959] 200 GET /api/v1/timelines/public?only_media=false&local=true&remote=false&limit=60 params = { "limit": 60, "only_media": "false", "local": "true", "remote": "false" } current_user = 1 calls = { "class-mastodon-api.php:1840": "public_api_permission()" } fread xyz (auto-generated) [2025-05-09 08:26:48.624] 200 GET /api/v1/timelines/home?limit=60 params = { "limit": 60 } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } fread xyz (auto-generated) [2025-05-09 08:26:46.387] 200 GET /api/v1/lists current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } fread xyz (auto-generated) [2025-05-09 08:26:43.709] 200 POST /api/v1/push/subscription params = { "subscription": { "endpoint": "https://api.fread.xyz/push/relay/send/f672afdb-7d2d-41a2-88bd-1a7784114cf5/MQ==", "keys": { "p256dh": "BIUfIfHpYIEnrhIqh5LEm06UI_vXYtfyH59pUExXqm72E-v170AG_kg9gXduC5WG08Cqt8hHJ33yY15YW22uqp8", "auth": "eecl6lWgaHNQxaj0JRPm9w" } }, "data": { "alerts": { "mention": true, "status": true, "reblog": true, "follow": true, "follow_request": true, "favourite": true, "poll": true, "update": true }, "policy": "all" } } json = { "subscription": { "endpoint": "https://api.fread.xyz/push/relay/send/f672afdb-7d2d-41a2-88bd-1a7784114cf5/MQ==", "keys": { "p256dh": "BIUfIfHpYIEnrhIqh5LEm06UI_vXYtfyH59pUExXqm72E-v170AG_kg9gXduC5WG08Cqt8hHJ33yY15YW22uqp8", "auth": "eecl6lWgaHNQxaj0JRPm9w" } }, "data": { "alerts": { "mention": true, "status": true, "reblog": true, "follow": true, "follow_request": true, "favourite": true, "poll": true, "update": true }, "policy": "all" } } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } fread xyz (auto-generated) [2025-05-09 08:26:37.022] 200 GET /api/v1/timelines/home?limit=60 params = { "limit": 60 } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } fread xyz (auto-generated) [2025-05-09 08:26:34.912] 200 GET /api/v1/lists current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" } fread xyz (auto-generated) [2025-05-09 08:26:31.812] 200 POST /api/v1/push/subscription params = { "subscription": { "endpoint": "https://api.fread.xyz/push/relay/send/f672afdb-7d2d-41a2-88bd-1a7784114cf5/MQ==", "keys": { "p256dh": "BNyC1tQpw1Jac4HtgnhXuQhVw3aR7X-AU_KvrLJX0dq3T0H2z1uS3ixt4CRHzthpaExMktbkSsTDIRIsE98s1_s", "auth": "id44-oGKTTuFzoD4HNMIPw" } }, "data": { "alerts": { "mention": true, "status": true, "reblog": true, "follow": true, "follow_request": true, "favourite": true, "poll": true, "update": true }, "policy": "all" } } json = { "subscription": { "endpoint": "https://api.fread.xyz/push/relay/send/f672afdb-7d2d-41a2-88bd-1a7784114cf5/MQ==", "keys": { "p256dh": "BNyC1tQpw1Jac4HtgnhXuQhVw3aR7X-AU_KvrLJX0dq3T0H2z1uS3ixt4CRHzthpaExMktbkSsTDIRIsE98s1_s", "auth": "id44-oGKTTuFzoD4HNMIPw" } }, "data": { "alerts": { "mention": true, "status": true, "reblog": true, "follow": true, "follow_request": true, "favourite": true, "poll": true, "update": true }, "policy": "all" } } current_user = 1 calls = { "class-mastodon-api.php:1801": "ensure_required_scope()", "class-mastodon-api.php:1922": "logged_in_permission()" }