Skip to content

Pipeline Issues

Error:

Missing runnerhub.yml pipeline configuration

Cause: 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.yml

Example repository structure:

repo-root/
├── .runnerhub/
│ └── runnerhub.yml
├── ios/
└── README.md

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_request

The 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 branch
  • pull_request — triggered by pull request open/update/reopen

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.

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.

Error:

Invalid runnerhub.yml: validation failed

or

Invalid runnerhub.yml: <validation message>

Cause: The YAML configuration doesn’t match the required schema.

Common mistakes:

  • Missing platform field
  • Missing steps array
  • Missing triggers field
  • Incorrect indentation (YAML is whitespace-sensitive)
  • Invalid field types

Solution:

Use this minimal valid pipeline as a starting point:

name: My Pipeline
platform: ios
environment:
xcode: "16.4"
triggers:
- push
- pull_request
steps:
- name: Run script
run: sh script.sh

Then 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.)

Error:

Invalid platform. Supported values: ios, macos, android, flutter, react-native

Cause: Unsupported or misspelled platform value.

Solution:

Fully supported platforms:

  • ios — iOS apps
  • macos — macOS apps
  • android — Android apps
  • flutter — Flutter apps (cross-platform)
  • react-native — React Native apps (cross-platform iOS and Android)

Example:

platform: ios

Error:

Invalid runnerhub.yml: steps must contain at least one step

Cause: The pipeline has no steps defined, or the steps array is empty.

Solution:

Add at least one step to your pipeline:

name: Pipeline
platform: ios
environment:
xcode: "16.4"
triggers:
- push
- pull_request
steps:
- name: Build
run: xcodebuild build
- name: Test
run: xcodebuild test

Each step must have:

  • name — A descriptive name for the step
  • run — The command(s) to execute

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:

  • xcodebuild
  • fastlane
  • swift build, swift test, swift package
  • pod install, pod repo update
  • bundle install, bundle exec

Solution:

Ensure your command uses appropriate platform tools:

name: Pipeline
platform: ios
environment:
xcode: "16.4"
steps:
- name: Build and test
run: xcodebuild -workspace MyApp.xcworkspace -scheme MyApp test

If you need to run auxiliary scripts, combine them with recognized commands:

name: Pipeline
platform: ios
environment:
xcode: "16.4"
steps:
- name: Build with script
run: |
sh scripts/setup.sh
xcodebuild -workspace MyApp.xcworkspace -scheme MyApp build

Error:

Command rejected: blocked command detected

Cause: The pipeline contains a command that’s explicitly blocked for security reasons:

  • docker
  • sudo
  • apt, 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 library

Use:

run: pod install # or manage via Podfile

Instead of:

run: curl https://script.example.com/setup.sh | sh

Use:

run: sh scripts/setup.sh # Keep scripts in your repo

For complex workflows, use Fastlane, which runs within the pipeline’s restricted environment.

Error:

Cannot edit Cloud YAML in dashboard

Cause: 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:

  1. Go to App > Cloud YAML tab
  2. Find the branch you want to edit in the list
  3. Click the Unlock button next to that branch’s configuration
  4. Make your changes
  5. 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.

Symptom: Scheduled build did not trigger at the expected time.

Cause: Possible reasons:

  1. Schedule is disabled or misconfigured
  2. The scheduling service may be temporarily unavailable
  3. No agent is available at the scheduled time
  4. Branch or day-of-week filter doesn’t match

Solution:

  1. Go to App > Schedules tab
  2. Verify the schedule is enabled
  3. Check that:
    • Branch matches your target branch (e.g., main)
    • Days of week includes today
    • Time is in UTC (or your configured timezone)
  4. Ensure at least one agent is online and available at the scheduled time
  5. If the issue persists, try again in a few minutes or contact support

Before running a pipeline, verify:

  • .runnerhub/runnerhub.yml exists in repo
  • triggers field is present and includes your event type
  • platform is ios, macos, android, flutter, or react-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.