Troubleshooting
Init Command Issues
”No recipes found”
$ pilum initNo recipes availableCauses:
- No embedded recipes in the binary
- Running a development build
Solutions:
Run with recipe path:
pilum init --recipe-path=./recepiesOr rebuild:
make buildService Discovery
”No services found”
$ pilum deployNo services to deployCauses:
- No
pilum.yamlfiles - Wrong directory
- Files named incorrectly
Solutions:
Check location:
find . -name "pilum.yaml"Ensure files are named pilum.yaml (not pilum.yml or service.yaml).
”No recipe found for provider”
Error: no recipe found for provider 'my-provider'Causes:
- Recipe file missing
- Provider name mismatch
- Recipe syntax error
Solutions:
Check recipe exists:
ls recepies/Verify provider matches:
provider: gcp
# Recipe fileprovider: gcp # Must matchValidate YAML:
cat recepies/my-provider-recepie.yaml | python3 -c "import yaml,sys; yaml.safe_load(sys.stdin)"Validation Errors
”recipe requires field ‘X’”
$ pilum checkerror: recipe 'gcp-cloud-run' requires field 'region'Solution:
Add the missing field:
name: my-serviceprovider: gcpregion: us-central1 # Add thisCheck requirements:
cat recepies/gcp-cloud-run-recepie.yamlNested field errors
Error: recipe 'homebrew' requires field 'homebrew.tap_url'Solution:
Use nested structure:
name: my-toolprovider: homebrew
homebrew: tap_url: https://github.com/org/homebrew-tap project_url: https://github.com/org/projectBuild Failures
”command not found”
Step 1: build binary my-service ✗ - exec: "go": executable file not foundSolution:
Install required tools:
which go && go versionwhich docker && docker --versionwhich gcloud && gcloud --versionBuild timeout
my-service ✗ (300.0s) - context deadline exceededSolutions:
- Increase timeout in recipe:
steps: - name: build binary timeout: 600- Or use CLI flag:
pilum deploy --timeout=600- Test build manually:
cd services/my-servicego build -o dist/app .Docker build fails
Step 2: build docker image my-service ✗ - Dockerfile not foundSolution:
Ensure Dockerfile exists:
ls services/my-service/DockerfileAuthentication Errors
GCP
ERROR: (gcloud.run.deploy) PERMISSION_DENIEDSolution:
gcloud auth logingcloud auth configure-dockergcloud config set project YOUR_PROJECT_IDAWS
Unable to locate credentialsSolution:
aws configure# Orexport AWS_ACCESS_KEY_ID=...export AWS_SECRET_ACCESS_KEY=...export AWS_REGION=us-east-1Azure
az login requiredSolution:
az loginaz acr login --name YOUR_ACR_NAMEPush Failures
Registry access denied
Step 3: push to registry my-service ✗ - denied: access forbiddenSolutions:
Authenticate:
# GCPgcloud auth configure-docker us-central1-docker.pkg.dev
# AWS ECRaws ecr get-login-password | docker login --username AWS --password-stdin 123456789.dkr.ecr.us-east-1.amazonaws.com
# Docker Hubdocker loginCheck registry URL:
registry_name: us-central1-docker.pkg.dev/my-project/my-repoParallel Execution
Race conditions
Services interfering during parallel execution.
Solution:
pilum deploy --max-workers=1Or use service_dir execution mode:
steps: - name: build execution_mode: service_dirOut of memory
System slows with many parallel builds.
Solution:
pilum deploy --max-workers=2Dry Run Issues
Variables not substituted
my-service: deploy [aws s3 sync ./dist s3://${project}-bucket]Solution:
Ensure field exists:
name: my-serviceproject: my-project # Enables ${project}Homebrew Issues
Formula push fails
Step 5: push to tap my-cli ✗ - authentication requiredSolution:
export GH_TOKEN="ghp_xxxxx"Token needs repo scope.
Checksum errors
If users report checksum mismatch:
- Verify release assets
- Re-run deploy to regenerate formula
Debug Mode
For verbose output:
pilum deploy --debug --tag=v1.0.0Shows:
- Command arguments
- Working directories
- Environment variables
- Full error traces
Getting Help
If issues persist:
- Run with
--debug - Check GitHub Issues
- Open a new issue with:
- Pilum version
- Full error message
- pilum.yaml (sanitized)
- Recipe being used
- Debug output