Pipeline Issues
runnerhub.yml Not Found
Section titled “runnerhub.yml Not Found”Error:
Missing runnerhub.yml pipeline configurationCause: RunnerHub cannot locate your pipeline configuration file. It looks for the file at a specific location.
Solution:
Ensure the pipeline file exists at the correct path:
.runnerhub/runnerhub.ymlExample repository structure:
repo-root/├── .runnerhub/│ └── runnerhub.yml├── ios/└── README.mdJob Not Triggered
Section titled “Job Not Triggered”Symptom: The webhook is received, but no job is created.
Cause:
The runnerhub.yml file has a triggers field that doesn’t include the event you sent (e.g., push or pull_request).
Solution:
Verify that the event you want to trigger is listed in the triggers array:
triggers: - push - pull_requestThe triggers field is required. Without it, your pipeline is invalid and no jobs will be created.
Supported trigger events:
push— triggered by commits pushed to a branchpull_request— triggered by pull request open/update/reopen
Push Ignored When PR is Open
Section titled “Push Ignored When PR is Open”Symptom: You push to a branch with an open pull request, but no job appears.
Cause:
This is expected behavior. When a branch has an open PR, RunnerHub ignores push events to avoid duplicate jobs. Only the pull_request event triggers the job.
Solution:
No action needed. Look for the job under the Pull Requests tab or check the PR status in your Git provider.
Job Automatically Cancelled (CANCELLING)
Section titled “Job Automatically Cancelled (CANCELLING)”Symptom:
A job changes automatically from PENDING, ASSIGNED, or RUNNING to CANCELLING and then CANCELLED.
Cause: A new commit has been received for the same Pull Request. RunnerHub automatically cancels previous executions to prioritize the most recent code.
Solution:
No action needed. The most recent commit will generate a new job that will execute shortly.
This is expected behavior and helps keep CI efficient by not running outdated jobs.
Invalid Pipeline Configuration
Section titled “Invalid Pipeline Configuration”Error:
Invalid runnerhub.yml: validation failedor
Invalid runnerhub.yml: <validation message>Cause: The YAML configuration doesn’t match the required schema.
Common mistakes:
- Missing
platformfield - Missing
stepsarray - Missing
triggersfield - Incorrect indentation (YAML is whitespace-sensitive)
- Invalid field types
Solution:
Use this minimal valid pipeline as a starting point:
name: My Pipelineplatform: ios
environment: xcode: "16.4"
triggers: - push - pull_request
steps: - name: Run script run: sh script.shThen expand with your own steps. Check that:
- All required fields are present (
name,platform,triggers,steps) - All indentation is consistent (use 2 spaces, not tabs)
- Field values have the correct type (strings, arrays, etc.)
Invalid Platform
Section titled “Invalid Platform”Error:
Invalid platform. Supported values: ios, macos, android, flutter, react-nativeCause: Unsupported or misspelled platform value.
Solution:
Fully supported platforms:
ios— iOS appsmacos— macOS appsandroid— Android appsflutter— Flutter apps (cross-platform)react-native— React Native apps (cross-platform iOS and Android)
Example:
platform: iosMissing or Empty Steps
Section titled “Missing or Empty Steps”Error:
Invalid runnerhub.yml: steps must contain at least one stepCause: The pipeline has no steps defined, or the steps array is empty.
Solution:
Add at least one step to your pipeline:
name: Pipelineplatform: ios
environment: xcode: "16.4"
triggers: - push - pull_request
steps: - name: Build run: xcodebuild build
- name: Test run: xcodebuild testEach step must have:
name— A descriptive name for the steprun— The command(s) to execute
Command Rejected by Platform Validation
Section titled “Command Rejected by Platform Validation”Error:
Command rejected: command does not match allowed commands for platform 'ios'Cause: The command in your step doesn’t contain a recognized command for the declared platform. For iOS/macOS, RunnerHub requires at least one of these:
xcodebuildfastlaneswift build,swift test,swift packagepod install,pod repo updatebundle install,bundle exec
Solution:
Ensure your command uses appropriate platform tools:
name: Pipelineplatform: ios
environment: xcode: "16.4"
steps: - name: Build and test run: xcodebuild -workspace MyApp.xcworkspace -scheme MyApp testIf you need to run auxiliary scripts, combine them with recognized commands:
name: Pipelineplatform: ios
environment: xcode: "16.4"
steps: - name: Build with script run: | sh scripts/setup.sh xcodebuild -workspace MyApp.xcworkspace -scheme MyApp buildBlocked Command
Section titled “Blocked Command”Error:
Command rejected: blocked command detectedCause: The pipeline contains a command that’s explicitly blocked for security reasons:
dockersudoapt,yum(package managers)curl | sh(piped shell execution)- Other dangerous patterns
Solution:
RunnerHub does not allow arbitrary system commands. Use platform-specific tools instead:
Instead of:
run: sudo brew install libraryUse:
run: pod install # or manage via PodfileInstead of:
run: curl https://script.example.com/setup.sh | shUse:
run: sh scripts/setup.sh # Keep scripts in your repoFor complex workflows, use Fastlane, which runs within the pipeline’s restricted environment.
Cloud YAML Locking Issues
Section titled “Cloud YAML Locking Issues”Error:
Cannot edit Cloud YAML in dashboardCause:
Cloud YAML for a specific branch is locked (locked=true). This is a safety feature to prevent accidental changes to production pipelines. Each branch has its own independent lock state.
Solution:
- Go to App > Cloud YAML tab
- Find the branch you want to edit in the list
- Click the Unlock button next to that branch’s configuration
- Make your changes
- Save your changes (this automatically re-locks the configuration)
Use the Unlock button in the Cloud YAML tab to allow edits for a specific branch. Other branches remain unaffected.
Scheduled Build (Cron) Not Triggered
Section titled “Scheduled Build (Cron) Not Triggered”Symptom: Scheduled build did not trigger at the expected time.
Cause: Possible reasons:
- Schedule is disabled or misconfigured
- The scheduling service may be temporarily unavailable
- No agent is available at the scheduled time
- Branch or day-of-week filter doesn’t match
Solution:
- Go to App > Schedules tab
- Verify the schedule is enabled
- Check that:
- Branch matches your target branch (e.g.,
main) - Days of week includes today
- Time is in UTC (or your configured timezone)
- Branch matches your target branch (e.g.,
- Ensure at least one agent is online and available at the scheduled time
- If the issue persists, try again in a few minutes or contact support
Quick Checklist
Section titled “Quick Checklist”Before running a pipeline, verify:
-
.runnerhub/runnerhub.ymlexists in repo -
triggersfield is present and includes your event type -
platformisios,macos,android,flutter, orreact-native - At least one step exists
- Commands use appropriate platform tools
- All scripts referenced in steps exist and are committed
- YAML indentation is correct (no mixing tabs and spaces)
See Code Signing Troubleshooting for signing-related issues.