Files
AnyPS5/docs/dev/debt/libSceNpWebApi2.md
alfalfa-starandClaude Opus 5.5 7505a8cf87 docs(npwebapi2): say why sceNpWebApi2SetRequestTimeout accepts any request id
shadPS4 looks the request up through its library and user contexts and
returns the matching NOT_FOUND error. This library keeps no request
table: CreateRequest hands out counter values and the other request calls
accept any id, so the checks wait for request tracking across all of
them. The entry moves to Silent stubs, as main's conventions check now
requires.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 07:24:03 +02:00

2.6 KiB

libSceNpWebApi2 technical debt

Silent stubs

  • sceNpWebApi2SetRequestTimeout (libSceNpWebApi2) - the (request id, timeout) signature follows shadPS4. Pinball FX (PPSA08755) calls it while its main menu loads. It succeeds for any request id and stores nothing: no request reaches a service, as sceNpWebApi2SendRequest fails with UNAVAILABLE at once, so no timeout can expire. shadPS4 returns LIB_CONTEXT_NOT_FOUND, USER_CONTEXT_NOT_FOUND or REQUEST_NOT_FOUND for an id it does not know; this library keeps no context or request table (sceNpWebApi2CreateRequest hands out counter values, and sceNpWebApi2AbortRequest, sceNpWebApi2AddHttpRequestHeader and sceNpWebApi2DeleteRequest also accept any id), so those errors are not reported until the request functions track their ids together

Unknown function info

  • sceNpWebApi2PushEventAbortHandle (libSceNpWebApi2, NID 1OLgvahaSco) is a throwing stub. The two signed 32-bit handle arguments and return type follow shadPS4 (PS4); the PS5 signature and abort behavior are unverified. PPSA01736 imports it.
  • sceNpWebApi2GetMemoryPoolStats (libSceNpWebApi2) - imported by PPSA21703's Unity PSN plugin. The signature (int libCtxId, stats*) and the layout of the Http2 statistics above (measured on a PS5 for Http2, Ssl and Net) are assumed for this library, not measured. The pool size is the one given to sceNpWebApi2Initialize, and the peak and current use are 0. The error codes are unknown, so a null output or an unknown context throws
  • sceNpWebApi2PushEventSetHandleTimeout (libSceNpWebApi2) - imported by PPSA01317, which fails to load without it. The signature (int libCtxId, int handleId, uint32_t timeout) follows sceNpWebApiSetHandleTimeout of the PS4 libSceNpWebApi in shadPS4 and is unverified on the PS5. An unknown library context throws, as in sceNpWebApi2GetMemoryPoolStats, since its error code is unknown. The handle is not checked, as push event handles are not tracked (sceNpWebApi2PushEventDeleteHandle accepts any handle), and the timeout is not kept, as nothing waits on a handle offline