Troubleshooting Guide #
Common issues and solutions for UE5 + Perforce + GitHub Actions builds.
Perforce Issues #
"Perforce client error: Connect to server failed" #
Cause: Cannot reach Perforce server or incorrect server address.
Solutions:
- Verify P4PORT is correct:
p4 set P4PORT - Check firewall allows port 1666 (or your custom port)
- Test connection:
p4 -p ssl:your-server.com:1666 info - Ensure SSL certificate is trusted if using SSL
"Password invalid or unset" #
Cause: Password not configured or expired.
Solutions:
- Set password:
p4 set P4PASSWD=your_password - Login manually:
p4 login - For GitHub Actions, verify P4_PASSWORD secret is set correctly
"Client 'ue5_build_workspace' unknown" #
Cause: Workspace doesn't exist on server.
Solutions:
- Create workspace:
p4 client ue5_build_workspace - Verify workspace name matches P4CLIENT setting
- Run setup script:
.\scripts\setup-build-machine.ps1
Sync is very slow #
Cause: Large files, network latency, or initial sync.
Solutions:
- Use parallel sync:
p4 sync -p - Consider Perforce Proxy for remote offices
- Exclude unnecessary files in workspace View
- Use incremental builds instead of clean builds
Unreal Engine Build Issues #
"Cannot find UnrealBuildTool" #
Cause: UE5 not installed or incorrect path.
Solutions:
- Verify UE5_ENGINE_PATH in workflow/config
- Default path:
C:\Program Files\Epic Games\UE_5.4 - Check UBT exists:
Test-Path "$UE5Path\Engine\Binaries\DotNET\UnrealBuildTool.exe"
"Build failed with exit code 1" #
Cause: Compilation errors in project code.
Solutions:
- Check build logs in
D:\Builds\Logs - Verify project builds locally in UE5 Editor
- Sync to a known-good changelist
- Check Visual Studio version compatibility
"Out of memory during build" #
Cause: Insufficient RAM or too many parallel build processes.
Solutions:
- Close other applications
- Increase VM size (Azure) or RAM
- Reduce parallel builds: Edit BuildConfiguration.xml
- Add
-MaxParallelActions=4to UAT command
"Cook failed for platform Win64" #
Cause: Missing content, corrupt assets, or plugin issues.
Solutions:
- Verify all content files are synced
- Check for broken asset references in logs
- Disable problematic plugins temporarily
- Clear Derived Data Cache: Delete
Saved/DerivedDataCache
Build takes too long (>2 hours) #
Causes: Clean builds, slow machine, or large project.
Solutions:
- Use incremental builds (disable clean_build)
- Enable IncrediBuild or FASTBuild if available
- Upgrade to faster hardware (more cores, faster SSD)
- Split into separate cook and package steps
- Use distributed build system
GitHub Actions Issues #
"Runner is offline" #
Cause: Self-hosted runner not running or disconnected.
Solutions:
- Check runner service:
Get-Service actions.runner.* - Restart service:
Restart-Service actions.runner.* - Check runner logs:
C:\actions-runner\_diag - Re-register runner if needed
"Permission denied" errors #
Cause: Runner service account lacks permissions.
Solutions:
- Run runner as Administrator
- Grant permissions to build directories
- Check Perforce user has read access
- Verify Windows Defender isn't blocking
Workflow never starts #
Cause: No matching runner with required labels.
Solutions:
- Verify runner has labels:
windows,ue5,perforce - Check runner is online in GitHub repository settings
- Review workflow
runs-onrequirements
Artifacts fail to upload #
Cause: Large build size or network issues.
Solutions:
- Compress artifacts before upload
- Split into multiple artifacts
- Consider Azure Blob Storage instead
- Check artifact size limits (10GB per artifact)
Azure VM Issues #
VM provisioning fails #
Cause: Quota limits or invalid configuration.
Solutions:
- Check Azure subscription quotas
- Try different VM size or region
- Verify AZURE_CREDENTIALS secret is valid
- Check Azure service principal permissions
VM is too slow #
Cause: Under-provisioned VM size.
Solutions:
- Use larger VM size (Standard_D16s_v5 or higher)
- Use Premium SSD storage
- Enable accelerated networking
- Consider dedicated host for consistent performance
Build image not found #
Cause: Custom UE5 image doesn't exist or wrong ID.
Solutions:
- Create VM image with UE5 pre-installed
- Verify AZURE_UE5_IMAGE_ID in secrets
- Use marketplace Windows Server image and install UE5 in workflow (slow)
Performance Optimization #
Slow Perforce Sync #
- Use
p4 sync -pfor parallel sync - Configure Perforce Proxy
- Exclude unnecessary files (binaries, intermediate files)
Slow UE5 Compilation #
- Use multiple cores:
-MaxParallelActions=16 - Enable IncrediBuild or FASTBuild
- Use SSD storage (NVMe recommended)
- Disable Windows Defender for build directories
Slow Cooking #
- Enable iterative cooking:
-iterativecooking - Use multiple cores:
-CookMultiprocess - Cook only changed content
- Exclude debug content in Shipping builds
Getting Help #
If you can't resolve the issue:
- Check GitHub Actions workflow logs
- Review local logs:
- Build logs:
D:\Builds\Logs - Runner logs:
C:\actions-runner\_diag - UE5 logs:
Saved\Logs
- Build logs:
- Verify all prerequisites are installed (README.md)
- Test build manually on build machine
- Create GitHub issue with:
- Error message
- Workflow run link
- Build machine specs
- Relevant log excerpts
Useful Commands #
# Check Perforce connection
p4 info
# Test Perforce login
p4 login -s
# View workspace configuration
p4 client -o ue5_build_workspace
# Check runner status
Get-Service actions.runner.*
# View runner logs
Get-Content C:\actions-runner\_diag\Runner_*.log -Tail 50
# Test UE5 installation
Test-Path "C:\Program Files\Epic Games\UE_5.4\Engine\Build\BatchFiles\RunUAT.bat"
# Check disk space
Get-PSDrive C
# View recent builds
Get-ChildItem D:\Builds | Sort-Object CreationTime -Descending | Select-Object -First 10