Quick answer: Verify user is signed in with a NP account, trophy pack matches the sandbox environment, and trophy ID matches TROPCONF.SFM. Check SCE error codes from sceNpTrophyUnlockTrophy.

A PS5 game calls sceNpTrophyUnlockTrophy on quest completion. Return code 0 (success), but no trophy notification appears, and the trophy view shows it still locked. Silent failure somewhere upstream.

Trophy Unlock Prerequisites

  1. Signed-in PSN user (not guest).
  2. Trophy context created via sceNpTrophyCreateContext.
  3. Trophy handle created and trophy pack registered.
  4. Network reachable (offline unlocks sync later).

Sandbox Mismatch

Dev kits run in a Sandbox NP environment (sp-int, prod-qa, etc.). Your trophy pack must be uploaded to the matching env via Sony’s submission portal. Pack uploaded to sp-int + dev kit on prod-qa = silent failure.

The Code

SceNpTrophyContext context;
SceNpTrophyHandle handle;

sceNpTrophyCreateContext(&context, &commId, nullptr, 0);
sceNpTrophyCreateHandle(&handle);
sceNpTrophyRegisterContext(context, handle, 0);

SceNpTrophyId platinum = SCE_NP_TROPHY_INVALID_TROPHY_ID;
int ret = sceNpTrophyUnlockTrophy(context, handle, trophyId, &platinum);
if (ret < 0) {
    SCE_LOG_ERROR("Trophy unlock failed: 0x%x", ret);
}

Check return value carefully. Codes like SCE_NP_TROPHY_ERROR_NOT_REGISTERED, SCE_NP_TROPHY_ERROR_ALREADY_UNLOCKED, SCE_NP_TROPHY_ERROR_INVALID_TROPHY_ID each have specific meanings.

Common Error Codes

Verifying

Sign in with a dev account. Trigger the unlock. PS5 should display the trophy banner with bronze/silver/gold animation. Profile → Trophies shows it unlocked with date. Test offline + reconnection too.

“Trophy unlock is a chain: signed-in user, registered pack, valid ID, environment match. Break the chain anywhere, no banner.”

For TRC compliance, ensure platinum auto-unlock when all other trophies unlocked — Sony’s test will check this.