Troubleshooting symbol file uploads from CI/CD pipelines
Solve common problems with uploading debugging symbols from CI/CD pipelines.
Read time 5 minutesLast updated 6 hours ago
If you experience errors when you upload symbol files directly from CI/CD pipelines, then refer to the following sections for information about how to resolve each type of error:
- Token fetch fails (401 Unauthorized)
- Token fetch fails (403 Forbidden)
- Script exits with "Path validation failed"
- Usymtool prints "Unity Cloud Diagnostics credentials unavailable"
- Usymtool prints "Signed URL request failed with status: 401"
- Crash reports aren't symbolicated
- Usymtool logs "File already exists" or returns status 409
- Usymtool warns "no symbol section" or "decoding dwarf section info... too short" (Android)
- Usymtool warns "no C# lines were successfully mapped to C++ lines"
- Usymtool fails with "lzma: e: No such file or directory" (Unity 6.2 and earlier)
- "File exists" error during compression on retry
Token fetch fails (401 Unauthorized)
When you call the token API, you receive an HTTP401 UnauthorizedThis error occurs when your service account credentials are expired or incorrect.
Token fetch fails (403 Forbidden)
When you call the token API, you receive an HTTP403 ForbiddenThis error occurs when the service account is missing the required permissions at the project level.
Script exits with "Path validation failed"
When you run theusymtoolThis error occurs when one or more required paths don't exist on your machine.
Usymtool prints "Unity Cloud Diagnostics credentials unavailable"
TheusymtoolThis error occurs when the upload token is empty. Under normal circumstances, the script automatically fetches the upload token.
Usymtool prints "Signed URL request failed with status: 401"
TheusymtoolThe upload token is invalid or expired. Tokens expire after seven days.
Crash reports aren't symbolicated
After you upload your symbol files, crash reports in the Dashboard still show raw addresses instead of function names. The Dashboard displays an error message that symbols are missing. For example,<symbols missing for uuid: b809799c0ec93ee1b730342bdbf14e03>This error occurs when the uploaded symbols' universally unique identifiers (UUIDs) don't match the binary that crashed.
Usymtool logs "File already exists" or returns status 409
This message appears when an existing symbol file is reuploaded to the Dashboard. This behavior is expected and not an error.The server returns an HTTP 409 status code when skips a symbol file that has already been uploaded.
usymtoolUsymtool warns "no symbol section" or "decoding dwarf section info... too short"
When theusymtoolno symbol section- (Android, Linux)
ELF binary has no symbol table — skipping - (Apple platforms)
Mach-O binary contains a valid UUID but no symbols — skipping - (Windows)
PDB file contains a valid GUID but no symbol data — skipping - (Android, Linux, Apple)
decoding dwarf section info at offset 0x0: too short
These errors occur when the uploaded .so files contain valid UUIDs but no debug information. These symbol files are considered "stripped." On Android, the default symbol path () contains stripped .so files that are intended for the APK.Although The tool accepts and uploads stripped files without reporting an error, the symbols don't help with crash symbolication due to missing debug information.
Library/Bee/Android/Prj/IL2CPP/Gradle/unityLibrary/symbols/usymtoolUsymtool warns "no C# lines were successfully mapped to C++ lines"
When the script runsusymtoollevel=warning msg="Warning: -il2cppOutputPath was provided, but no C# lines weresuccessfully mapped to C++ lines. Are the values for -il2cppOutputPath and-il2cppFileRoot correct? The most common C++ file root in the symbol file was <path>,try using that instead"
This error occurs when the value doesn't match the C++ file paths embedded in the symbol file. Without a match, can't map C++ stack frames back to C# source lines.
-il2cppFileRootusymtoolThe binary bundled with Unity 6.2 and earlier is built with an older Go compiler that can't correctly parse DWARF debug data for C# line mapping.If you use one of these Unity versions, the following issues occur even with valid unstripped symbols and correct paths:
usymtool- gives the warning that "no C# lines were successfully mapped to C++ lines."
usymtool - C# file and line information is missing from crash reports.
Usymtool fails with "lzma: e: No such file or directory" (Unity 6.2 and earlier)
This message appears afterusymtoolThis error occurs only on Unity 6.2 and earlier, because these versions depend on an external binary for compression.GNU doesn't support the encode subcommand that the LZMA SDK uses. When GNU is on your , it shadows Unity's bundled binary, and the compression step fails.
lzmalzmaelzmaPATH"File exists" error during compression on retry
This message appears afterusymtoolIf a previous upload failed during compression, then stale temporary files in can block the next run.
/tmp/usym_upload/