Quick answer: When a game is rejected by console certification, the platform provides the specific requirements it failed, commonly stability issues (crashes, hangs), platform-behavior compliance failures (suspend/resume, controller handling, account/storage behavior, terminology), or violations of specific platform rules. Address each cited failure by fixing the underlying issue (crashes especially need real fixes), then resubmit. Testing against the requirements before submitting avoids the rejection-resubmit cycle.
A console certification rejection is stressful, it can delay your launch, but it's also informative: cert tells you exactly what failed. The path forward is to systematically address each cited failure, fix the underlying problems (not just paper over them), and resubmit. Understanding the common failure categories helps you fix efficiently and, ideally, pass cleanly next time.
Why Games Fail Certification
Certification checks compliance with the platform's requirements (TRC/TCR/lotcheck), and rejections cite the specific failures. Common categories: stability, crashes and hangs are frequent cert failures, the game must be stable under the platform's test scenarios. Platform-behavior compliance, correct handling of platform features, suspend/resume (the console suspending and resuming), controller behavior (disconnection, reconnection), account and storage handling, and required behaviors in edge cases (disconnection, removed storage, interruptions). Platform conventions/rules, correct terminology, UI conventions, and platform-specific rules. And specific requirement violations, any of the platform's many specific requirements not met.
Many failures involve behaviors that don't arise on PC (suspend/resume, controller disconnection mid-game, platform account flows), which is why they're easy to miss if you developed primarily on PC. The rejection lists exactly which requirements failed, so you have a precise to-do list.
How to Diagnose It
Read the rejection's cited failures, cert tells you specifically what didn't pass, which is your prioritized fix list. For each failure, understand the underlying issue: a stability failure (a crash/hang) needs the actual crash diagnosed and fixed; a platform-behavior failure (suspend/resume mishandled, controller-disconnect not handled) needs that behavior implemented correctly; a convention/rule failure needs compliance. Reproduce each cited failure to understand and verify the fix.
For the stability failures especially, capturing the crashes/hangs with traces is invaluable, Bugnet's crash reporting supports console builds and captures crashes with stack traces and context, so the crashes that failed cert arrive diagnosable, and you can verify (via version-tagged reporting) that they're fixed before resubmitting. Catching and fixing the crashes that cert flags is often the bulk of the work, and having the traces makes it tractable.
How to Fix It
Address each cited failure with a real fix. For stability failures, diagnose and fix the actual crashes/hangs (don't just try to avoid the test scenario), use the captured traces to fix the root causes, and verify stability. For platform-behavior failures, correctly implement the required behaviors, handle suspend/resume properly (save/restore state, pause), handle controller disconnection/reconnection, handle accounts and storage per the platform's rules, and handle the edge cases (disconnection, removed storage, interruptions) cert checks. For convention/rule failures, comply with the platform's terminology, UI, and specific requirements.
Then resubmit with all cited failures addressed. Crucially, to avoid repeated rejections, test against the platform's requirements before submitting (throughout development, not just at the end), especially the platform-specific behaviors and stability, so you catch cert issues before cert does. Treating cert compliance as an ongoing development concern, with the platform behaviors handled and stability ensured (and verified via crash reporting) before submission, is what gets a console game through cert cleanly rather than through painful rejection-resubmit cycles.
A cert rejection hands you the exact failures, usually crashes, platform-behavior compliance, or rules. Fix each underlying issue (capture the crashes), then resubmit, and test against requirements before submitting next time.