Structure
These have been redesigned from the 3DS so that they fit within a Aarch64 MOV instruction immediate most of the time (without requiring the additional MOVK).
| Bits | 
Field
 | 
| 8-0 | 
Module
 | 
| 21-9 | 
Description
 | 
When a fatal-error is received the error code is outputted using the following formatter:
 %04d-%04x
.. where the first code is 2000 + Module, and the other being Description.
Modules
| Value | 
Name
 | 
| 1 | 
Kernel
 | 
| 2 | 
FS
 | 
| 3 | 
NVIDIA
 | 
| 5 | 
GameCard
 | 
| 9 | 
RO service
 | 
| 10 | 
CMIF (IPC command interface)
 | 
| 11 | 
HIPC (IPC)
 | 
| 15 | 
PM
 | 
| 16 | 
NS
 | 
| 21 | 
SM
 | 
| 22 | 
RO userland
 | 
| 110 | 
NIFM
 | 
| 110 | 
Display
 | 
| 124 | 
Account
 | 
| 126 | 
Mii
 | 
| 129 | 
Play Report
 | 
| 162 | 
Userland assert
 | 
| 168 | 
Userland crash
 | 
| 203 | 
HID
 | 
Error codes
| Value | 
Description | 
Description
 | 
| 0xCA01 | 
101 | 
Unaligned size
 | 
| 0xCC01 | 
102 | 
Invalid address (not page-aligned).
 | 
| 0xCE01 | 
103 | 
Address is NULL
 | 
| 0xD201 | 
105 | 
Handle-table full.
 | 
| 0xD401 | 
106 | 
Invalid memory state.
 | 
| 0xD801 | 
108 | 
When trying to set executable permission on memory.
 | 
| 0xDC01 | 
110 | 
Stack address outside allowed range
 | 
| 0xE001 | 
112 | 
Invalid thread priority.
 | 
| 0xE201 | 
113 | 
Invalid processor id.
 | 
| 0xE401 | 
114 | 
Invalid handle.
 | 
| 0xE601 | 
115 | 
Syscall copy from user failed.
 | 
| 0xEA01 | 
117 | 
Time out? When you give 0 handles to svcWaitSynchronizationN.
 | 
| 0xEE01 | 
119 | 
When you give too many handles to svcWaitSynchronizationN.
 | 
| 0xF201 | 
121 | 
No such port
 | 
| 0xF801 | 
124 | 
Unhandled usermode exception
 | 
| 0xFA01 | 
125 | 
Wrong memory permission?
 | 
| 0x10601 | 
131 | 
Port max sessions exceeded
 | 
| 0x10801 | 
132 | 
Out of memory
 | 
| 0x7D402 | 
1002 | 
Permission denied, or title-id not found
 | 
| 0x13B002 | 
2520 | 
Gamecard not inserted
 | 
| 0x171402 | 
2954 | 
Invalid gamecard handle.
 | 
| 0x1A4A02 | 
3365 | 
Out of memory
 | 
| 0x196002 | 
3248 | 
Out of memory
 | 
| 0x196202 | 
3249 | 
Out of memory
 | 
| 0x2EE202 | 
6001 | 
Unknown media-id
 | 
| 0x2EE602 | 
6003 | 
Path too long
 | 
| 0x2F5A02 | 
6061 | 
Offset outside storage
 | 
| 0x313802 | 
6300 | 
Operation not supported
 | 
| 0x320002 | 
6400 | 
Permission denied
 | 
| 0x3EE03 | 
503 | 
Invalid memory mirror
 | 
| 0xDC05 | 
110 | 
Gamecard not inserted
 | 
| 0x6609 | 
51 | 
Invalid memory state/permission
 | 
| 0x6A09 | 
53 | 
Invalid Nrr
 | 
| 0xA209 | 
81 | 
Unaligned Nrr address
 | 
| 0xA409 | 
82 | 
Bad Nrr size
 | 
| 0xAA09 | 
85 | 
Bad Nrr address
 | 
| 0x1A80A | 
212 | 
Bad magic (expected 'SFCO')
 | 
| 0x20B | 
1 | 
Size too big to fit to marshal.
 | 
| 0x11A0B | 
141 | 
Went past maximum during marshalling.
 | 
| 0x1900B | 
200 | 
IPC Query 0 failed.
 | 
| 0x25A0B | 
301 | 
Remote process is dead
 | 
| 0x3D60B | 
491 | 
IPC Query 1 failed.
 | 
| 0x20F | 
1 | 
Pid not found
 | 
| 0x0C15 | 
6 | 
Invalid name (all zeroes)
 | 
| 0x1015 | 
8 | 
Permission denied
 | 
| 0x816 | 
4 | 
Bad Nro magic
 | 
| 0xC16 | 
6 | 
Bad Nrr magic
 | 
| 0x287C | 
20 | 
Argument is NULL
 | 
| 0x2C7C | 
22 | 
Argument is invalid
 | 
| 0x3C7C | 
30 | 
Bad input buffer size
 | 
| 0x407C | 
32 | 
Invalid input buffer
 | 
Fatal Errors
| Error | 
Description
 | 
| 2162-0002
 | 
Can be triggered by running svcBreak. The svcBreak params have no affect on the value of the thrown error-code.
 | 
| 2168-0000
 | 
Userland ARM undefined instruction exception
 | 
| 2168-0001
 | 
Userland ARM prefetch-abort due to PC set to non-executable region
 | 
| 2168-0002
 | 
Userland ARM data abort. Also caused by abnormal process termination via svcExitProcess. Note: directly jumping to nnMain()-retaddr from non-main-thread has the same result.
 | 
| 2168-0003
 | 
Userland PC address not aligned to 4 bytes
 |