Describe the bug
Discord expects the routes
/api/v9/experiments?with_guild_experiments=true and
/api/v9/apex/experiments?surface=2
to always return results, even if not authed
To Reproduce
send (fetch) requests to the routes, unauthorized
Spacebar will return
{ "code": 401, "message": "Error: Missing Authorization Header", "request": "GET /api/v9/apex/experiments?surface=2" }
Expected behavior
a result that can be processed by discord client, not a 401
eg
{"assignments":{}} for the surface route or
{"fingerprint":"","assignments":[],"guild_experiments":[]} for the guild experiments route
Console Logs
If applicable, add console logs to help give more information about your problem.
web.8abfafb39d15ebaa.js:94 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'forEach') at Z (web.8abfafb39d15ebaa.js:94:36963) at q (web.8abfafb39d15ebaa.js:94:36623) at ExperimentStore_EXPERIMENTS_FETCH_SUCCESS (web.8abfafb39d15ebaa.js:122:1142410) at web.8abfafb39d15ebaa.js:122:1141383 at r (web.8abfafb39d15ebaa.js:122:1146870) at E._dispatch (web.8abfafb39d15ebaa.js:122:1141375) at web.8abfafb39d15ebaa.js:122:1140979 at o.log (web.8abfafb39d15ebaa.js:122:1147005) at E._dispatchWithLogging (web.8abfafb39d15ebaa.js:122:1140921) at E._dispatchWithDevtools (web.8abfafb39d15ebaa.js:122:1140518) at Object.dispatch_EXPERIMENTS_FETCH_SUCCESS [as EXPERIMENTS_FETCH_SUCCESS] (web.8abfafb39d15ebaa.js:122:1139655) at web.8abfafb39d15ebaa.js:122:1139756 at E.flushWaitQueue (web.8abfafb39d15ebaa.js:122:1140414) at web.8abfafb39d15ebaa.js:122:1139786 at new Promise (<anonymous>) at E.dispatch (web.8abfafb39d15ebaa.js:122:1139535) at l.Bo.get.then.q (web.8abfafb39d15ebaa.js:120:468081) Z @ web.8abfafb39d15ebaa.js:94 q @ web.8abfafb39d15ebaa.js:94 ExperimentStore_EXPERIMENTS_FETCH_SUCCESS @ web.8abfafb39d15ebaa.js:122 (anonymous) @ web.8abfafb39d15ebaa.js:122 r @ web.8abfafb39d15ebaa.js:122 _dispatch @ web.8abfafb39d15ebaa.js:122 (anonymous) @ web.8abfafb39d15ebaa.js:122 log @ web.8abfafb39d15ebaa.js:122 _dispatchWithLogging @ web.8abfafb39d15ebaa.js:122 _dispatchWithDevtools @ web.8abfafb39d15ebaa.js:122 dispatch_EXPERIMENTS_FETCH_SUCCESS @ web.8abfafb39d15ebaa.js:122 (anonymous) @ web.8abfafb39d15ebaa.js:122 flushWaitQueue @ web.8abfafb39d15ebaa.js:122 (anonymous) @ web.8abfafb39d15ebaa.js:122 dispatch @ web.8abfafb39d15ebaa.js:122 l.Bo.get.then.q @ web.8abfafb39d15ebaa.js:120 Promise.then en @ web.8abfafb39d15ebaa.js:120 et @ web.8abfafb39d15ebaa.js:120 initialize @ web.8abfafb39d15ebaa.js:120 initializeIfNeeded @ web.8abfafb39d15ebaa.js:133 (anonymous) @ web.8abfafb39d15ebaa.js:133 initialize @ web.8abfafb39d15ebaa.js:133 d @ web.8abfafb39d15ebaa.js:133 140595 @ web.8abfafb39d15ebaa.js:27 __webpack_require__ @ web.8abfafb39d15ebaa.js:147 186433 @ web.8abfafb39d15ebaa.js:27 __webpack_require__ @ web.8abfafb39d15ebaa.js:147 (anonymous) @ web.8abfafb39d15ebaa.js:27 await in (anonymous) 329563 @ web.8abfafb39d15ebaa.js:27 __webpack_require__ @ web.8abfafb39d15ebaa.js:147 (anonymous) @ web.8abfafb39d15ebaa.js:147 (anonymous) @ web.8abfafb39d15ebaa.js:147Understand this error web.8abfafb39d15ebaa.js:122 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading '1') at l.setExperimentAssignments (web.8abfafb39d15ebaa.js:122:245248) at l.handleFetchSuccess (web.8abfafb39d15ebaa.js:122:250930) at APEX_EXPERIMENTS_FETCH_SUCCESS (web.8abfafb39d15ebaa.js:94:49425) at ApexExperimentStore_APEX_EXPERIMENTS_FETCH_SUCCESS (web.8abfafb39d15ebaa.js:122:1142410) at web.8abfafb39d15ebaa.js:122:1141383 at r (web.8abfafb39d15ebaa.js:122:1146870) at E._dispatch (web.8abfafb39d15ebaa.js:122:1141375) at web.8abfafb39d15ebaa.js:122:1140979 at o.log (web.8abfafb39d15ebaa.js:122:1147005) at E._dispatchWithLogging (web.8abfafb39d15ebaa.js:122:1140921) at E._dispatchWithDevtools (web.8abfafb39d15ebaa.js:122:1140518) at Object.dispatch_APEX_EXPERIMENTS_FETCH_SUCCESS [as APEX_EXPERIMENTS_FETCH_SUCCESS] (web.8abfafb39d15ebaa.js:122:1139655) at web.8abfafb39d15ebaa.js:122:1139756 at E.flushWaitQueue (web.8abfafb39d15ebaa.js:122:1140414) at web.8abfafb39d15ebaa.js:122:1139786 at new Promise (<anonymous>) at E.dispatch (web.8abfafb39d15ebaa.js:122:1139535) at web.8abfafb39d15ebaa.js:94:47630 at l.batched (web.8abfafb39d15ebaa.js:122:1144822) at d (web.8abfafb39d15ebaa.js:94:47556)
Additional context
discord ui may hang while ill-processing the files or result in other issues, but seems fine apart from some error log otherwise.
this may change in the future, as in some cases of unimplemented routes or unexpected results the ui breaks.
Describe the bug
Discord expects the routes
/api/v9/experiments?with_guild_experiments=true and
/api/v9/apex/experiments?surface=2
to always return results, even if not authed
To Reproduce
send (fetch) requests to the routes, unauthorized
Spacebar will return
{ "code": 401, "message": "Error: Missing Authorization Header", "request": "GET /api/v9/apex/experiments?surface=2" }Expected behavior
a result that can be processed by discord client, not a 401
eg
{"assignments":{}}for the surface route or{"fingerprint":"","assignments":[],"guild_experiments":[]}for the guild experiments routeConsole Logs
If applicable, add console logs to help give more information about your problem.
web.8abfafb39d15ebaa.js:94 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'forEach') at Z (web.8abfafb39d15ebaa.js:94:36963) at q (web.8abfafb39d15ebaa.js:94:36623) at ExperimentStore_EXPERIMENTS_FETCH_SUCCESS (web.8abfafb39d15ebaa.js:122:1142410) at web.8abfafb39d15ebaa.js:122:1141383 at r (web.8abfafb39d15ebaa.js:122:1146870) at E._dispatch (web.8abfafb39d15ebaa.js:122:1141375) at web.8abfafb39d15ebaa.js:122:1140979 at o.log (web.8abfafb39d15ebaa.js:122:1147005) at E._dispatchWithLogging (web.8abfafb39d15ebaa.js:122:1140921) at E._dispatchWithDevtools (web.8abfafb39d15ebaa.js:122:1140518) at Object.dispatch_EXPERIMENTS_FETCH_SUCCESS [as EXPERIMENTS_FETCH_SUCCESS] (web.8abfafb39d15ebaa.js:122:1139655) at web.8abfafb39d15ebaa.js:122:1139756 at E.flushWaitQueue (web.8abfafb39d15ebaa.js:122:1140414) at web.8abfafb39d15ebaa.js:122:1139786 at new Promise (<anonymous>) at E.dispatch (web.8abfafb39d15ebaa.js:122:1139535) at l.Bo.get.then.q (web.8abfafb39d15ebaa.js:120:468081) Z @ web.8abfafb39d15ebaa.js:94 q @ web.8abfafb39d15ebaa.js:94 ExperimentStore_EXPERIMENTS_FETCH_SUCCESS @ web.8abfafb39d15ebaa.js:122 (anonymous) @ web.8abfafb39d15ebaa.js:122 r @ web.8abfafb39d15ebaa.js:122 _dispatch @ web.8abfafb39d15ebaa.js:122 (anonymous) @ web.8abfafb39d15ebaa.js:122 log @ web.8abfafb39d15ebaa.js:122 _dispatchWithLogging @ web.8abfafb39d15ebaa.js:122 _dispatchWithDevtools @ web.8abfafb39d15ebaa.js:122 dispatch_EXPERIMENTS_FETCH_SUCCESS @ web.8abfafb39d15ebaa.js:122 (anonymous) @ web.8abfafb39d15ebaa.js:122 flushWaitQueue @ web.8abfafb39d15ebaa.js:122 (anonymous) @ web.8abfafb39d15ebaa.js:122 dispatch @ web.8abfafb39d15ebaa.js:122 l.Bo.get.then.q @ web.8abfafb39d15ebaa.js:120 Promise.then en @ web.8abfafb39d15ebaa.js:120 et @ web.8abfafb39d15ebaa.js:120 initialize @ web.8abfafb39d15ebaa.js:120 initializeIfNeeded @ web.8abfafb39d15ebaa.js:133 (anonymous) @ web.8abfafb39d15ebaa.js:133 initialize @ web.8abfafb39d15ebaa.js:133 d @ web.8abfafb39d15ebaa.js:133 140595 @ web.8abfafb39d15ebaa.js:27 __webpack_require__ @ web.8abfafb39d15ebaa.js:147 186433 @ web.8abfafb39d15ebaa.js:27 __webpack_require__ @ web.8abfafb39d15ebaa.js:147 (anonymous) @ web.8abfafb39d15ebaa.js:27 await in (anonymous) 329563 @ web.8abfafb39d15ebaa.js:27 __webpack_require__ @ web.8abfafb39d15ebaa.js:147 (anonymous) @ web.8abfafb39d15ebaa.js:147 (anonymous) @ web.8abfafb39d15ebaa.js:147Understand this error web.8abfafb39d15ebaa.js:122 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading '1') at l.setExperimentAssignments (web.8abfafb39d15ebaa.js:122:245248) at l.handleFetchSuccess (web.8abfafb39d15ebaa.js:122:250930) at APEX_EXPERIMENTS_FETCH_SUCCESS (web.8abfafb39d15ebaa.js:94:49425) at ApexExperimentStore_APEX_EXPERIMENTS_FETCH_SUCCESS (web.8abfafb39d15ebaa.js:122:1142410) at web.8abfafb39d15ebaa.js:122:1141383 at r (web.8abfafb39d15ebaa.js:122:1146870) at E._dispatch (web.8abfafb39d15ebaa.js:122:1141375) at web.8abfafb39d15ebaa.js:122:1140979 at o.log (web.8abfafb39d15ebaa.js:122:1147005) at E._dispatchWithLogging (web.8abfafb39d15ebaa.js:122:1140921) at E._dispatchWithDevtools (web.8abfafb39d15ebaa.js:122:1140518) at Object.dispatch_APEX_EXPERIMENTS_FETCH_SUCCESS [as APEX_EXPERIMENTS_FETCH_SUCCESS] (web.8abfafb39d15ebaa.js:122:1139655) at web.8abfafb39d15ebaa.js:122:1139756 at E.flushWaitQueue (web.8abfafb39d15ebaa.js:122:1140414) at web.8abfafb39d15ebaa.js:122:1139786 at new Promise (<anonymous>) at E.dispatch (web.8abfafb39d15ebaa.js:122:1139535) at web.8abfafb39d15ebaa.js:94:47630 at l.batched (web.8abfafb39d15ebaa.js:122:1144822) at d (web.8abfafb39d15ebaa.js:94:47556)Additional context
discord ui may hang while ill-processing the files or result in other issues, but seems fine apart from some error log otherwise.
this may change in the future, as in some cases of unimplemented routes or unexpected results the ui breaks.