Referencedraft
Verified 2026-09-01

CUDA REFERENCE

CUDA error codes, with the name and the string

Every cudaError code, enum name and message the CUDA 12.6 runtime printed on a Tesla T4 on 2026-09-01, including which ones poison the context.

Every value the CUDA runtime's error enum can return, with the name cudaGetErrorName gives back and the message cudaGetErrorString gives back, printed by a program on a real GPU rather than copied from a header.

Captured on Tesla T4 (sm_75), driver 595.84, CUDA 12.6 (V12.6.85)
Date 2026-09-01
Program code/errors/_strings/dump_error_strings.cu
Transcript code/errors/_strings/evidence/run-2026-09-01.txt

These strings are version-specific, and that is the point of naming the toolkit. The table below is what CUDA 12.6 printed. The 13.3 documentation lists more enumerators than 12.6 defines, so a reader on 13.x will find codes here that their runtime does not have, and codes in their runtime that are not here. Read the header above before quoting a row.

The code and the string are two different things, and neither is the enum name. A program that prints only the number gives you nothing searchable; a program that prints only the string cannot be grepped for reliably, because the text changes between releases. Print all three.

Two quirks worth knowing

cudaGetErrorString(cudaSuccess) returns no error, not an empty string. A logger that prints the message unconditionally will print "no error" on every successful call, which is how a clean run comes to look like it is reporting failures.

Exactly one message in the whole table ends in a full stop: code 222, the provided PTX was compiled with an unsupported toolchain. Every other string has no terminating punctuation. If you are matching text, copy it exactly.

Which codes poison the context

The distinction that matters at three in the morning is not severity, it is whether the CUDA context survives. Some errors kill it, and every later call in that process fails until the process restarts, so the second, third and fourth messages you see are noise. Others leave the context healthy and are safe to handle and continue from.

Sticky, measured on this card. After an illegal memory access (700) the next call returns 700 as well: cudaFree after the failure -> 700 in code/errors/unspecified-launch-failure/evidence/run-2026-09-01.txt. Same shape for a device-side assert (710), where next call (cudaFree) -> 710 in code/errors/device-side-assert-triggered/evidence/run-2026-09-01.txt. An unspecified launch failure (719) behaves the same way. Restart the process; there is nothing to recover.

Not sticky, also measured. An invalid device ordinal (101) leaves everything working, and cudaSetDevice(0) succeeds immediately after cudaSetDevice(1) fails. A failed allocation (2) takes nothing and leaks nothing, with the free-memory figure byte-identical either side of it. A rejected launch configuration (1) is refused before anything runs, and the following synchronize returns success. A missing kernel image (209) reports at the launch and leaves the context usable. And an initialization error (3) in a forked child does not harm the parent. Each of those is a transcript under code/errors/, named on the matching error page.

The rule to carry: a code raised at the launch, before any device work happened, is recoverable. A code raised by device work that already went wrong is not.

The table

All 131 rows exactly as the program printed them, cudaSuccess included. Rows with a page link to it; rows without do not pretend to have one.

Code cudaGetErrorName cudaGetErrorString Page
0 cudaSuccess no error
1 cudaErrorInvalidValue invalid argument /errors/invalid-argument
2 cudaErrorMemoryAllocation out of memory /errors/out-of-memory
3 cudaErrorInitializationError initialization error /errors/initialization-error
4 cudaErrorCudartUnloading driver shutting down
5 cudaErrorProfilerDisabled profiler disabled while using external profiling tool
6 cudaErrorProfilerNotInitialized profiler not initialized: call cudaProfilerInitialize()
7 cudaErrorProfilerAlreadyStarted profiler already started
8 cudaErrorProfilerAlreadyStopped profiler already stopped
9 cudaErrorInvalidConfiguration invalid configuration argument /errors/invalid-configuration-argument
12 cudaErrorInvalidPitchValue invalid pitch argument
13 cudaErrorInvalidSymbol invalid device symbol /errors/invalid-device-symbol
16 cudaErrorInvalidHostPointer invalid host pointer
17 cudaErrorInvalidDevicePointer invalid device pointer
18 cudaErrorInvalidTexture invalid texture reference
19 cudaErrorInvalidTextureBinding texture is not bound to a pointer
20 cudaErrorInvalidChannelDescriptor invalid channel descriptor
21 cudaErrorInvalidMemcpyDirection invalid copy direction for memcpy
22 cudaErrorAddressOfConstant invalid address of constant
23 cudaErrorTextureFetchFailed fetch from texture failed
24 cudaErrorTextureNotBound cannot fetch from a texture that is not bound
25 cudaErrorSynchronizationError incorrect use of __syncthreads()
26 cudaErrorInvalidFilterSetting linear filtering not supported for non-float type
27 cudaErrorInvalidNormSetting read as normalized float not supported for 32-bit non float type
28 cudaErrorMixedDeviceExecution device emulation mode and device execution mode cannot be mixed
31 cudaErrorNotYetImplemented feature not yet implemented
32 cudaErrorMemoryValueTooLarge memory size or pointer value too large to fit in 32 bit
34 cudaErrorStubLibrary CUDA driver is a stub library
35 cudaErrorInsufficientDriver CUDA driver version is insufficient for CUDA runtime version
36 cudaErrorCallRequiresNewerDriver API call is not supported in the installed CUDA driver
37 cudaErrorInvalidSurface invalid surface reference
43 cudaErrorDuplicateVariableName duplicate global variable looked up by string name
44 cudaErrorDuplicateTextureName duplicate texture looked up by string name
45 cudaErrorDuplicateSurfaceName duplicate surface looked up by string name
46 cudaErrorDevicesUnavailable CUDA-capable device(s) is/are busy or unavailable
49 cudaErrorIncompatibleDriverContext incompatible driver context
52 cudaErrorMissingConfiguration global function call is not configured
53 cudaErrorPriorLaunchFailure unspecified launch failure in prior launch
65 cudaErrorLaunchMaxDepthExceeded launch would exceed maximum depth of nested launches
66 cudaErrorLaunchFileScopedTex launch failed because kernel uses unsupported, file-scoped textures (texture objects are supported)
67 cudaErrorLaunchFileScopedSurf launch failed because kernel uses unsupported, file-scoped surfaces (surface objects are supported)
68 cudaErrorSyncDepthExceeded cudaDeviceSynchronize failed because caller's grid depth exceeds cudaLimitDevRuntimeSyncDepth
69 cudaErrorLaunchPendingCountExceeded launch failed because launch would exceed cudaLimitDevRuntimePendingLaunchCount
98 cudaErrorInvalidDeviceFunction invalid device function /errors/invalid-device-function
100 cudaErrorNoDevice no CUDA-capable device is detected /errors/no-cuda-capable-device
101 cudaErrorInvalidDevice invalid device ordinal /errors/invalid-device-ordinal
102 cudaErrorDeviceNotLicensed device doesn't have valid Grid license
103 cudaErrorSoftwareValidityNotEstablished integrity checks failed
127 cudaErrorStartupFailure startup failure in cuda runtime
200 cudaErrorInvalidKernelImage device kernel image is invalid
201 cudaErrorDeviceUninitialized invalid device context
205 cudaErrorMapBufferObjectFailed mapping of buffer object failed
206 cudaErrorUnmapBufferObjectFailed unmapping of buffer object failed
207 cudaErrorArrayIsMapped array is mapped
208 cudaErrorAlreadyMapped resource already mapped
209 cudaErrorNoKernelImageForDevice no kernel image is available for execution on the device /errors/no-kernel-image-is-available
210 cudaErrorAlreadyAcquired resource already acquired
211 cudaErrorNotMapped resource not mapped
212 cudaErrorNotMappedAsArray resource not mapped as array
213 cudaErrorNotMappedAsPointer resource not mapped as pointer
214 cudaErrorECCUncorrectable uncorrectable ECC error encountered
215 cudaErrorUnsupportedLimit limit is not supported on this architecture
216 cudaErrorDeviceAlreadyInUse exclusive-thread device already in use by a different thread
217 cudaErrorPeerAccessUnsupported peer access is not supported between these two devices
218 cudaErrorInvalidPtx a PTX JIT compilation failed
219 cudaErrorInvalidGraphicsContext invalid OpenGL or DirectX context
220 cudaErrorNvlinkUncorrectable uncorrectable NVLink error detected during the execution
221 cudaErrorJitCompilerNotFound PTX JIT compiler library not found
222 cudaErrorUnsupportedPtxVersion the provided PTX was compiled with an unsupported toolchain.
223 cudaErrorJitCompilationDisabled PTX JIT compilation was disabled
224 cudaErrorUnsupportedExecAffinity the provided execution affinity is not supported
225 cudaErrorUnsupportedDevSideSync the provided PTX contains unsupported call to cudaDeviceSynchronize
300 cudaErrorInvalidSource device kernel image is invalid
301 cudaErrorFileNotFound file not found
302 cudaErrorSharedObjectSymbolNotFound shared object symbol not found
303 cudaErrorSharedObjectInitFailed shared object initialization failed
304 cudaErrorOperatingSystem OS call failed or operation not supported on this OS
400 cudaErrorInvalidResourceHandle invalid resource handle
401 cudaErrorIllegalState the operation cannot be performed in the present state
402 cudaErrorLossyQuery attempted introspection would be semantically lossy
500 cudaErrorSymbolNotFound named symbol not found
600 cudaErrorNotReady device not ready
700 cudaErrorIllegalAddress an illegal memory access was encountered /errors/illegal-memory-access
701 cudaErrorLaunchOutOfResources too many resources requested for launch /errors/too-many-resources-requested
702 cudaErrorLaunchTimeout the launch timed out and was terminated
703 cudaErrorLaunchIncompatibleTexturing launch uses incompatible texturing mode
704 cudaErrorPeerAccessAlreadyEnabled peer access is already enabled
705 cudaErrorPeerAccessNotEnabled peer access has not been enabled
708 cudaErrorSetOnActiveProcess cannot set while device is active in this process
709 cudaErrorContextIsDestroyed context is destroyed
710 cudaErrorAssert device-side assert triggered /errors/device-side-assert-triggered
711 cudaErrorTooManyPeers peer mapping resources exhausted
712 cudaErrorHostMemoryAlreadyRegistered part or all of the requested memory range is already mapped
713 cudaErrorHostMemoryNotRegistered pointer does not correspond to a registered memory region
714 cudaErrorHardwareStackError hardware stack error
715 cudaErrorIllegalInstruction an illegal instruction was encountered
716 cudaErrorMisalignedAddress misaligned address /errors/misaligned-address
717 cudaErrorInvalidAddressSpace operation not supported on global/shared address space
718 cudaErrorInvalidPc invalid program counter
719 cudaErrorLaunchFailure unspecified launch failure /errors/unspecified-launch-failure
720 cudaErrorCooperativeLaunchTooLarge too many blocks in cooperative launch
800 cudaErrorNotPermitted operation not permitted
801 cudaErrorNotSupported operation not supported
802 cudaErrorSystemNotReady system not yet initialized
803 cudaErrorSystemDriverMismatch system has unsupported display driver / cuda driver combination
804 cudaErrorCompatNotSupportedOnDevice forward compatibility was attempted on non supported HW
805 cudaErrorMpsConnectionFailed MPS client failed to connect to the MPS control daemon or the MPS server
806 cudaErrorMpsRpcFailure the remote procedural call between the MPS server and the MPS client failed
807 cudaErrorMpsServerNotReady MPS server is not ready to accept new MPS client requests
808 cudaErrorMpsMaxClientsReached the hardware resources required to create MPS client have been exhausted
809 cudaErrorMpsMaxConnectionsReached the hardware resources required to support device connections have been exhausted
810 cudaErrorMpsClientTerminated the MPS client has been terminated by the server
811 cudaErrorCdpNotSupported is using CUDA Dynamic Parallelism, but the current configuration, like MPS, does not support it
812 cudaErrorCdpVersionMismatch unsupported interaction between different versions of CUDA Dynamic Parallelism
900 cudaErrorStreamCaptureUnsupported operation not permitted when stream is capturing
901 cudaErrorStreamCaptureInvalidated operation failed due to a previous error during capture
902 cudaErrorStreamCaptureMerge operation would result in a merge of separate capture sequences
903 cudaErrorStreamCaptureUnmatched capture was not ended in the same stream as it began
904 cudaErrorStreamCaptureUnjoined capturing stream has unjoined work
905 cudaErrorStreamCaptureIsolation dependency created on uncaptured work in another stream
906 cudaErrorStreamCaptureImplicit operation would make the legacy stream depend on a capturing blocking stream
907 cudaErrorCapturedEvent operation not permitted on an event last recorded in a capturing stream
908 cudaErrorStreamCaptureWrongThread attempt to terminate a thread-local capture sequence from another thread
909 cudaErrorTimeout wait operation timed out
910 cudaErrorGraphExecUpdateFailure the graph update was not performed because it included changes which violated constraints specific to instantiated graph update
911 cudaErrorExternalDevice an async error has occured in external entity outside of CUDA
912 cudaErrorInvalidClusterSize a kernel launch error has occurred due to cluster misconfiguration
913 cudaErrorFunctionNotLoaded the function handle is not loaded when calling an API that requires a loaded function
914 cudaErrorInvalidResourceType one or more resources passed in are not valid resource types for the operation
915 cudaErrorInvalidResourceConfiguration one or more resources are insufficient or non-applicable for the operation
999 cudaErrorUnknown unknown error

Written 2026-09-01. Every row above is the output of code/errors/_strings/dump_error_strings.cu, captured to code/errors/_strings/evidence/run-2026-09-01.txt on 2026-09-01 on ornn-internal-t4-spot-5v08: Tesla T4 (sm_75), driver 595.84, CUDA 12.6 (V12.6.85). No value in this table was typed by hand or taken from documentation. Author and reviewer: not yet assigned; this page does not publish until both are named.