WPCOM memberships endpoint returns incorrect 500 status code
Impacted plugin
Jetpack
Quick summary
One of our customers was concerned about the 500 errors in the application. After further investigation, we found that the membership status endpoint returns a 500 status code when the user account is not connected to WordPress.com. It looks like the intended status code is 404, but the API returns a 500 status code due to incorrect usage of status code in the third parameter.
In the same method, the third parameter is used correctly to return the intended 404 status code. Can we please audit the status codes in the file and fix the status codes?
Steps to reproduce
The requests to the endpoint are triggered from the Block Editor.
https://example.com/wp-json/wpcom/v2/memberships/status?source=gutenberg&type=all&is_editable=true&_locale=user
A clear and concise description of what you expected to happen.
The expected 404 status code should be returned from the API.
What actually happened
No response
Impact
All
Available workarounds?
There is no user impact
If the above answer is "Yes...", outline the workaround.
No response
Platform (Simple and/or Atomic)
No response
Logs or notes
No response
Since it seemed likely we have more instances of this than just the one file, I used Phan to scan the entire monorepo.
It turned up 456 places where we pass an int to `WP_Error`'s data parameter, all of which look likely to be intended as an HTTP status code.
- projects/packages/backup/src/class-rest-controller.php:281
- projects/packages/connection/legacy/class-jetpack-ixr-client.php:156
- projects/packages/connection/legacy/class-jetpack-tracks-client.php:86
- projects/packages/connection/legacy/class-jetpack-tracks-event.php:92
- projects/packages/connection/legacy/class-jetpack-xmlrpc-server.php:161
- projects/packages/connection/legacy/class-jetpack-xmlrpc-server.php:174
- projects/packages/connection/legacy/class-jetpack-xmlrpc-server.php:232
- projects/packages/connection/legacy/class-jetpack-xmlrpc-server.php:239
- projects/packages/connection/legacy/class-jetpack-xmlrpc-server.php:243
- projects/packages/connection/legacy/class-jetpack-xmlrpc-server.php:284
- projects/packages/connection/legacy/class-jetpack-xmlrpc-server.php:296
- projects/packages/connection/legacy/class-jetpack-xmlrpc-server.php:320
- projects/packages/connection/legacy/class-jetpack-xmlrpc-server.php:341
- projects/packages/connection/legacy/class-jetpack-xmlrpc-server.php:367
- projects/packages/connection/legacy/class-jetpack-xmlrpc-server.php:385
- projects/packages/connection/legacy/class-jetpack-xmlrpc-server.php:451
- projects/packages/connection/legacy/class-jetpack-xmlrpc-server.php:464
- projects/packages/connection/legacy/class-jetpack-xmlrpc-server.php:475
- projects/packages/connection/legacy/class-jetpack-xmlrpc-server.php:499
- projects/packages/connection/legacy/class-jetpack-xmlrpc-server.php:530
- projects/packages/connection/legacy/class-jetpack-xmlrpc-server.php:613
- projects/packages/connection/legacy/class-jetpack-xmlrpc-server.php:619
- projects/packages/connection/src/class-manager.php:1829
- projects/packages/connection/src/class-manager.php:2031
- projects/packages/connection/src/class-manager.php:2036
- projects/packages/connection/src/class-manager.php:2040
- projects/packages/connection/src/class-manager.php:2044
- projects/packages/connection/src/class-manager.php:2048
- projects/packages/connection/src/class-manager.php:2053
- projects/packages/connection/src/class-manager.php:2057
- projects/packages/connection/src/class-manager.php:2067
- projects/packages/connection/src/class-manager.php:2071
- projects/packages/connection/src/class-manager.php:2572
- projects/packages/connection/src/class-manager.php:2640
- projects/packages/connection/src/class-rest-connector.php:425
- projects/packages/connection/src/class-secrets.php:145
- projects/packages/connection/src/class-secrets.php:185
- projects/packages/connection/src/class-secrets.php:194
- projects/packages/connection/src/class-secrets.php:204
- projects/packages/connection/src/class-secrets.php:213
- projects/packages/connection/src/class-secrets.php:222
- projects/packages/connection/src/class-secrets.php:230
- projects/packages/connection/src/class-secrets.php:238
- projects/packages/connection/src/class-secrets.php:249
- projects/packages/connection/src/class-secrets.php:257
- projects/packages/connection/src/class-tokens.php:231
- projects/packages/connection/src/class-tokens.php:235
- projects/packages/connection/src/class-tokens.php:239
- projects/packages/connection/src/class-tokens.php:246
- projects/packages/connection/src/class-tokens.php:250
- projects/packages/connection/src/class-tokens.php:255
- projects/packages/connection/src/class-tokens.php:259
- projects/packages/plugins-installer/src/class-plugins-installer.php:111
- projects/packages/sync/src/class-rest-endpoints.php:615
- projects/packages/sync/src/class-rest-endpoints.php:651
- projects/packages/sync/src/class-rest-endpoints.php:683
- projects/packages/sync/src/class-rest-endpoints.php:687
- projects/packages/sync/src/class-rest-endpoints.php:746
- projects/packages/sync/src/class-rest-endpoints.php:836
- projects/packages/sync/src/class-rest-endpoints.php:840
- projects/packages/sync/src/class-rest-sender.php:39
- projects/packages/sync/src/class-rest-sender.php:58
- projects/packages/sync/src/class-rest-sender.php:62
- projects/packages/sync/src/class-rest-sender.php:139
- projects/packages/transport-helper/src/class-rest-controller.php:121
- projects/packages/videopress/src/class-videopress-rest-api-v1-settings.php:87
- projects/packages/videopress/src/class-videopress-rest-api-v1-settings.php:124
- projects/packages/videopress/src/class-wpcom-rest-api-v2-endpoint-videopress.php:338
- projects/packages/videopress/src/class-wpcom-rest-api-v2-endpoint-videopress.php:387
- projects/plugins/jetpack/_inc/lib/class-jetpack-instagram-gallery-helper.php:67
- projects/plugins/jetpack/_inc/lib/class.media.php:177
- projects/plugins/jetpack/_inc/lib/core-api/class.jetpack-core-api-module-endpoints.php:1349
- projects/plugins/jetpack/_inc/lib/core-api/class.jetpack-core-api-module-endpoints.php:1378
- projects/plugins/jetpack/_inc/lib/core-api/class.jetpack-core-api-module-endpoints.php:1394
- projects/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-ai.php:227
- projects/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-ai.php:245
- projects/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-ai.php:272
- projects/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-mailchimp.php:89
- projects/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-mailchimp.php:120
- projects/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-mailchimp.php:129
- projects/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/memberships.php:245
- projects/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/memberships.php:247
- projects/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/memberships.php:252
- projects/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/memberships.php:436
- projects/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/memberships.php:438
- projects/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/memberships.php:442
- projects/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/memberships.php:471
- projects/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/memberships.php:473
- projects/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/memberships.php:480
- projects/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/service-api-keys.php:83
- projects/plugins/jetpack/_inc/lib/widgets.php:390
- projects/plugins/jetpack/_inc/lib/widgets.php:451
- projects/plugins/jetpack/_inc/lib/widgets.php:459
- projects/plugins/jetpack/_inc/lib/widgets.php:468
- projects/plugins/jetpack/_inc/lib/widgets.php:472
- projects/plugins/jetpack/_inc/lib/widgets.php:493
- projects/plugins/jetpack/_inc/lib/widgets.php:535
- projects/plugins/jetpack/_inc/lib/widgets.php:539
- projects/plugins/jetpack/_inc/lib/widgets.php:543
- projects/plugins/jetpack/_inc/lib/widgets.php:548
- projects/plugins/jetpack/_inc/lib/widgets.php:559
- projects/plugins/jetpack/_inc/lib/widgets.php:562
- projects/plugins/jetpack/_inc/lib/widgets.php:596
- projects/plugins/jetpack/_inc/lib/widgets.php:723
- projects/plugins/jetpack/_inc/lib/widgets.php:754
- projects/plugins/jetpack/_inc/lib/widgets.php:766
- projects/plugins/jetpack/class.jetpack.php:3412
- projects/plugins/jetpack/class.jetpack.php:3417
- projects/plugins/jetpack/class.jetpack.php:3452
- projects/plugins/jetpack/class.jetpack.php:3457
- projects/plugins/jetpack/class.jetpack.php:3463
- projects/plugins/jetpack/class.jetpack.php:3467
- projects/plugins/jetpack/class.jetpack.php:3472
- projects/plugins/jetpack/class.jetpack.php:3480
- projects/plugins/jetpack/class.jetpack.php:3497
- projects/plugins/jetpack/class.jetpack.php:3532
- projects/plugins/jetpack/class.json-api-endpoints.php:1311
- projects/plugins/jetpack/class.json-api-endpoints.php:1315
- projects/plugins/jetpack/class.json-api-endpoints.php:1319
- projects/plugins/jetpack/class.json-api-endpoints.php:1324
- projects/plugins/jetpack/class.json-api-endpoints.php:1327
- projects/plugins/jetpack/class.json-api-endpoints.php:1537
- projects/plugins/jetpack/class.json-api-endpoints.php:1583
- projects/plugins/jetpack/class.json-api-endpoints.php:1815
- projects/plugins/jetpack/class.json-api-endpoints.php:1835
- projects/plugins/jetpack/class.json-api-endpoints.php:1840
- projects/plugins/jetpack/class.json-api-endpoints.php:1844
- projects/plugins/jetpack/class.json-api-endpoints.php:2256
- projects/plugins/jetpack/class.json-api-endpoints.php:2258
- projects/plugins/jetpack/class.json-api-endpoints.php:2286
- projects/plugins/jetpack/class.json-api-endpoints.php:2405
- projects/plugins/jetpack/class.json-api.php:939
- projects/plugins/jetpack/class.json-api.php:950
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-add-widget-endpoint.php:120
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-add-widget-endpoint.php:126
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-add-widget-endpoint.php:136
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-autosave-post-v1-1-endpoint.php:75
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-autosave-post-v1-1-endpoint.php:86
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-autosave-post-v1-1-endpoint.php:90
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-autosave-post-v1-1-endpoint.php:132
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-bulk-update-comments-endpoint.php:149
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-bulk-update-comments-endpoint.php:152
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-bulk-update-comments-endpoint.php:194
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-comment-endpoint.php:71
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-comment-endpoint.php:78
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-comment-endpoint.php:83
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-comment-endpoint.php:92
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-comment-endpoint.php:126
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-comment-endpoint.php:134
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-delete-media-endpoint.php:57
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-delete-media-endpoint.php:63
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-delete-media-v1-1-endpoint.php:68
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-delete-media-v1-1-endpoint.php:74
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-edit-media-v1-2-endpoint.php:240
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-edit-media-v1-2-endpoint.php:397
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-edit-media-v1-2-endpoint.php:405
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-edit-media-v1-2-endpoint.php:419
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-autosave-v1-1-endpoint.php:60
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-autosave-v1-1-endpoint.php:64
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-autosave-v1-1-endpoint.php:91
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comment-counts-endpoint.php:54
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comment-counts-endpoint.php:58
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comment-counts-endpoint.php:68
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comment-history-endpoint.php:44
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comment-history-endpoint.php:48
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comment-history-endpoint.php:52
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comments-tree-endpoint.php:190
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comments-tree-v1-2-endpoint.php:146
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comments-tree-v1-2-endpoint.php:153
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-media-endpoint.php:57
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-media-v1-1-endpoint.php:75
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-post-counts-v1-1-endpoint.php:130
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-post-counts-v1-1-endpoint.php:146
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-post-endpoint.php:96
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-post-v1-1-endpoint.php:105
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-site-endpoint.php:331
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-site-v1-2-endpoint.php:104
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-taxonomies-endpoint.php:111
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-term-endpoint.php:58
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-comments-endpoint.php:213
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-comments-endpoint.php:246
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-comments-endpoint.php:319
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-comments-endpoint.php:328
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-embeds-endpoint.php:48
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-media-endpoint.php:61
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-media-endpoint.php:69
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-media-v1-1-endpoint.php:95
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-media-v1-1-endpoint.php:104
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-post-type-taxonomies-endpoint.php:70
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-endpoint.php:111
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-endpoint.php:115
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-endpoint.php:213
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-v1-1-endpoint.php:131
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-v1-1-endpoint.php:141
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-v1-1-endpoint.php:238
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-v1-2-endpoint.php:94
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-v1-2-endpoint.php:104
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-v1-2-endpoint.php:205
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-roles-endpoint.php:124
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-shortcodes-endpoint.php:48
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-terms-endpoint.php:69
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-terms-endpoint.php:99
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-users-endpoint.php:117
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-users-endpoint.php:126
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-users-endpoint.php:131
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-users-endpoint.php:134
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-menus-v1-1-endpoint.php:24
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-menus-v1-1-endpoint.php:730
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-menus-v1-1-endpoint.php:738
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-menus-v1-1-endpoint.php:746
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-menus-v1-1-endpoint.php:883
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-menus-v1-1-endpoint.php:986
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-menus-v1-1-endpoint.php:1120
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-menus-v1-1-endpoint.php:1184
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-post-endpoint.php:130
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-post-endpoint.php:134
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-post-endpoint.php:143
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-post-endpoint.php:149
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-post-endpoint.php:622
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-post-endpoint.php:637
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-post-v1-1-endpoint.php:94
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-post-v1-1-endpoint.php:98
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-render-embed-endpoint.php:50
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-render-embed-endpoint.php:58
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-render-embed-endpoint.php:62
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-render-embed-endpoint.php:68
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-render-embed-endpoint.php:77
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-render-embed-reversal-endpoint.php:58
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-render-embed-reversal-endpoint.php:67
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-render-embed-reversal-endpoint.php:72
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-render-embed-reversal-endpoint.php:81
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-render-embed-reversal-endpoint.php:87
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-render-embed-reversal-endpoint.php:108
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-render-shortcode-endpoint.php:52
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-render-shortcode-endpoint.php:60
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-render-shortcode-endpoint.php:67
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-render-shortcode-endpoint.php:74
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-sharing-buttons-endpoint.php:34
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-sharing-buttons-endpoint.php:37
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-sharing-buttons-endpoint.php:137
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-sharing-buttons-endpoint.php:139
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-sharing-buttons-endpoint.php:141
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-sharing-buttons-endpoint.php:183
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-sharing-buttons-endpoint.php:312
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-sharing-buttons-endpoint.php:419
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-sharing-buttons-endpoint.php:517
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-sharing-buttons-endpoint.php:707
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-sharing-buttons-endpoint.php:773
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-sharing-buttons-endpoint.php:778
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-endpoint.php:189
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-endpoint.php:191
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-endpoint.php:923
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-endpoint.php:927
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-endpoint.php:942
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-endpoint.php:946
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-user-endpoint.php:148
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-user-endpoint.php:156
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-user-endpoint.php:160
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-user-endpoint.php:167
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-user-endpoint.php:210
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-user-endpoint.php:214
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-user-endpoint.php:243
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-user-endpoint.php:249
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-comment-endpoint.php:220
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-comment-endpoint.php:228
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-comment-endpoint.php:245
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-comment-endpoint.php:249
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-comment-endpoint.php:259
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-comment-endpoint.php:265
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-comment-endpoint.php:298
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-comment-endpoint.php:350
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-comment-endpoint.php:354
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-comment-endpoint.php:360
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-comment-endpoint.php:393
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-comment-endpoint.php:441
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-comment-endpoint.php:445
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-customcss.php:66
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-customcss.php:71
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-media-endpoint.php:71
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-media-endpoint.php:77
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-media-v1-1-endpoint.php:96
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-media-v1-1-endpoint.php:102
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php:274
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php:279
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php:285
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php:301
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php:305
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php:311
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php:315
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php:322
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php:326
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php:374
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php:376
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php:756
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php:878
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php:882
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php:886
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php:930
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php:934
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php:295
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php:300
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php:306
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php:322
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php:326
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php:332
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php:337
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php:341
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php:353
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php:400
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php:402
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php:835
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php:956
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php:960
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php:964
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php:1008
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php:1012
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php:221
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php:226
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php:232
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php:248
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php:252
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php:258
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php:263
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php:267
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php:279
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php:284
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php:332
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php:334
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php:835
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-site-homepage-endpoint.php:59
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-site-logo-endpoint.php:80
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-taxonomy-endpoint.php:235
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-taxonomy-endpoint.php:240
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-taxonomy-endpoint.php:245
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-taxonomy-endpoint.php:256
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-taxonomy-endpoint.php:299
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-taxonomy-endpoint.php:303
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-taxonomy-endpoint.php:307
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-taxonomy-endpoint.php:313
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-taxonomy-endpoint.php:356
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-taxonomy-endpoint.php:360
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-taxonomy-endpoint.php:364
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-term-endpoint.php:122
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-term-endpoint.php:131
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-term-endpoint.php:156
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-term-endpoint.php:161
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-term-endpoint.php:172
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-term-endpoint.php:214
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-term-endpoint.php:219
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-term-endpoint.php:225
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-term-endpoint.php:272
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-term-endpoint.php:276
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-user-endpoint.php:62
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-user-endpoint.php:117
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-user-endpoint.php:138
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-user-endpoint.php:142
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-user-endpoint.php:156
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-user-endpoint.php:160
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-user-endpoint.php:176
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-user-endpoint.php:183
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-user-endpoint.php:187
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-upload-media-endpoint.php:62
- projects/plugins/jetpack/json-endpoints/class.wpcom-json-api-upload-media-v1-1-endpoint.php:68
- projects/plugins/jetpack/json-endpoints/jetpack/class-jetpack-json-api-delete-backup-helper-script-endpoint.php:54
- projects/plugins/jetpack/json-endpoints/jetpack/class-jetpack-json-api-install-backup-helper-script-endpoint.php:54
- projects/plugins/jetpack/json-endpoints/jetpack/class-jetpack-json-api-install-backup-helper-script-endpoint.php:60
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-check-capabilities-endpoint.php:28
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-cron-endpoint.php:70
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-cron-endpoint.php:164
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-cron-endpoint.php:171
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-cron-endpoint.php:236
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-cron-endpoint.php:240
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-cron-endpoint.php:244
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-cron-endpoint.php:260
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-cron-endpoint.php:264
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-cron-endpoint.php:274
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-cron-endpoint.php:300
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-cron-endpoint.php:312
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-cron-endpoint.php:320
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-endpoint.php:127
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-endpoint.php:164
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-endpoint.php:172
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-comment-backup-endpoint.php:33
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-comment-backup-endpoint.php:52
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-database-object-backup-endpoint.php:83
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-database-object-backup-endpoint.php:87
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-database-object-backup-endpoint.php:115
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-option-backup-endpoint.php:34
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-post-backup-endpoint.php:31
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-post-backup-endpoint.php:52
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-term-backup-endpoint.php:33
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-term-backup-endpoint.php:52
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-user-backup-endpoint.php:33
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-user-backup-endpoint.php:52
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-modules-endpoint.php:69
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-modules-endpoint.php:98
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-modules-modify-endpoint.php:61
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-modules-modify-endpoint.php:87
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-delete-endpoint.php:97
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-endpoint.php:141
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-endpoint.php:410
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-endpoint.php:425
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-endpoint.php:430
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-endpoint.php:448
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-modify-endpoint.php:308
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-modify-endpoint.php:372
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-modify-endpoint.php:420
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-modify-endpoint.php:481
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-modify-endpoint.php:540
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-modify-v1-2-endpoint.php:167
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-modify-v1-2-endpoint.php:214
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-new-endpoint.php:155
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-sync-endpoint.php:83
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-sync-endpoint.php:87
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-sync-endpoint.php:340
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-sync-endpoint.php:365
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-sync-endpoint.php:384
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-sync-endpoint.php:388
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-sync-endpoint.php:471
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-sync-endpoint.php:497
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-sync-endpoint.php:501
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-sync-endpoint.php:573
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-sync-endpoint.php:577
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-sync-endpoint.php:606
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-themes-active-endpoint.php:40
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-themes-active-endpoint.php:46
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-themes-active-endpoint.php:64
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-themes-active-endpoint.php:68
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-themes-delete-endpoint.php:76
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-themes-endpoint.php:85
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-themes-endpoint.php:114
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-themes-endpoint.php:186
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-themes-endpoint.php:189
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-themes-install-endpoint.php:98
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-themes-install-endpoint.php:170
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-themes-modify-endpoint.php:123
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-themes-modify-endpoint.php:173
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-themes-new-endpoint.php:109
- projects/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-updates-status-endpoint.php:28
- projects/plugins/jetpack/modules/sharedaddy/recaptcha.php:108
- projects/plugins/jetpack/modules/sharedaddy/recaptcha.php:118
- projects/plugins/jetpack/modules/widgets/class-jetpack-instagram-widget.php:227
- projects/plugins/jetpack/modules/widgets/class-jetpack-instagram-widget.php:247
- projects/plugins/jetpack/sal/class.json-api-post-base.php:871
- projects/plugins/jetpack/sal/class.json-api-post-base.php:876
- projects/plugins/jetpack/sal/class.json-api-post-base.php:880
- projects/plugins/jetpack/sal/class.json-api-post-base.php:917
- projects/plugins/jetpack/sal/class.json-api-site-base.php:608
- projects/plugins/jetpack/sal/class.json-api-site-base.php:630
- projects/plugins/jetpack/sal/class.json-api-site-base.php:636
- projects/plugins/jetpack/sal/class.json-api-site-base.php:646
- projects/plugins/jetpack/sal/class.json-api-site-base.php:782
- projects/plugins/jetpack/sal/class.json-api-site-base.php:840
- projects/plugins/jetpack/sal/class.json-api-site-base.php:855
- projects/plugins/jetpack/tests/php/json-api/test-class.json-api-jetpack-endpoints-accessibility.php:183
- projects/plugins/jetpack/tests/php/json-api/test-class.json-api-jetpack-endpoints-accessibility.php:198
But on further review, I don't think all of these would be correctly changed to array( 'status' => X ). The ones in projects/plugins/jetpack/_inc/lib/core-api/ are probably going through Core's API and so are good to change, but on the other hand the ones in projects/plugins/jetpack/json-endpoints/ seem more likely to be going through this bit of code that wants either the bare int or array( 'status_code' => X )
https://github.com/Automattic/jetpack/blob/cd0ac7a8754487a5cbccb4e39b4a7f6aa0ada4bb/projects/plugins/jetpack/class.json-api.php#L754-L762
We may need to check that neither of the APIs are using the other's classes as a backend. And we may need to check what code on wpcom Simple does with any of this too.
As for everything else, does it go through one of those APIs, or both, or neither?
That's as far as I have time to take this right now. Anyone else is free to pick it up.
This seems to now be impacting multiple customers of WP VIP. It may be a change in the most recent update of Jetpack, or at least within the last few versions. Our latest customer report was after a Jetpack automatic upgrade to version 13.9.
@ThirdEyeRose @anomiex This is now fixed (at least for the Memberships status).
It turned up 456 places where we pass an int to
WP_Error's data parameter, all of which look likely to be intended as an HTTP status code.
Maybe you should open a new issue regarding this.
CC @jeherve
Hi @millerf - we have another customer seemingly observing the same issue in 197974-z - they're seeing 500 responses being returned for this endpoint:
/wp-json/wpcom/v2/memberships/status?source=gutenberg&type=all&is_editable=true&_locale=user
Is there a specific version of Jetpack that has the fix in place? Based on the PR, I think it should be fixed in 13.9.1? Fwiw, their WP version is currently 6.6, and Jetpack version is 14.0. Please also let me know if you need any further details here!
Hi @millerf - we have another customer seemingly observing the same issue in 197974-z - they're seeing 500 responses being returned for this endpoint:
@suyogyashukla
Can you please tell me their blog ID or URL? I don't have access to the ticket... It would also help making sure their jetpack connection works fine with Pc9OEs-v-p2