Engineering support path

Find where the failure occurs before deciding whether to escalate

VMRunner provides dedicated Apple Silicon physical nodes. Connection failures, build issues, signing interruptions, storage needs, node changes, and billing questions should all start with reproducible evidence—not repeated restarts or duplicate tickets.

  • Connection failure
  • Build issue
  • Storage needs
  • Node questions
  • Billing review
RUN DIAGNOSTIC

Build Diagnostics Board

Node responsive
  1. 01
    Connection handshake Verify node address, port, host fingerprint, and credentials
    CHECK
  2. 02
    Environment baseline Record system time, free disk space, and tool versions
    CHECK
  3. 03
    Reproduce the task Run again with the same branch, command, and parameters
    RUN
  4. 04
    Consolidate logs Keep the first error and relevant output before and after it
    CAPTURE
  5. 05
    Escalate Submit the order ID, node, time, and expected result
    TICKET
Physical node allocation 1 order = 1 dedicated node
Initial diagnostic sequence

Six baseline checks beat wiping the environment

Preserve the current state first, then narrow the scope one item at a time. Record each result to avoid guessing between connection, system, and project settings.

  1. 01

    Verify connection credentials

    Confirm the node address, username, port, and key file belong to the current order. If the host fingerprint changes, verify the node details first—do not bypass the check.

    ssh -v vmrunner-node
  2. 02

    Check network reachability

    Test DNS, the target port, and the local network separately. Retest after switching networks to distinguish local egress, routing, and node connection issues.

    nc -vz node.example 22
  3. 03

    Check free disk space

    Check the system volume, working directory, and cache directory together. A build can fail before the disk is full; low space can also break dependency extraction or archiving.

    df -h
  4. 04

    Check system time

    Clock drift affects certificate validation, token validity, and dependency downloads. Record the system timezone and current time, then compare them with timestamps in the task logs.

    date && systemsetup -gettimezone
  5. 05

    Pin development tool versions

    Record the Xcode, Command Line Tools, Ruby, Fastlane, and package manager versions. Do not upgrade multiple components during reproduction.

    xcodebuild -version
  6. 06

    Preserve the first valid error

    Find the first error after the task begins; do not capture only the final line. The last failure is often a consequence of an upstream error.

    tee build.log
Command-line retest

Use the same commands to produce comparable output

The commands below cover SSH connectivity, Xcode builds, and Fastlane workflows. Copy them, then adjust the scheme and lane for your project. Do not include keys or complete tokens in public tickets.

build-session · ssh / xcodebuild / fastlane
Connection & environment baseline
ssh -v vmrunner-node
sw_vers
date
df -h
xcode-select -p
xcodebuild -version
Xcode build reproduction
set -o pipefail
xcodebuild \
  -workspace App.xcworkspace \
  -scheme App \
  -configuration Release \
  clean build | tee xcodebuild.log
Fastlane output excerpt
bundle exec fastlane beta --verbose | tee fastlane.log
grep -n -E "error:|failed|Exit status" fastlane.log
Xcode & signing

Distinguish compile, archive, and signing failures first

A single pipeline may pass through dependency resolution, compilation, testing, archiving, and export. Identify the failing stage first, then check the relevant configuration.

Certificates

Certificate validity

Check that the certificate is visible in the current Keychain, has not expired, and is correctly paired with its private key. Seeing the certificate name alone does not confirm a complete signing chain.

security find-identity -v -p codesigning
Keychain

Unlock the Keychain

Non-interactive tasks must explicitly unlock the specified Keychain in the Runner session and confirm that signing tools can access the private key. Never put the password directly in the repository or build logs.

security list-keychains -d user
Provisioning profiles

Provisioning profile matching

Verify the Bundle Identifier, certificate type, target environment, and profile coverage. Do not mix automatic and manual signing in the same target.

xcodebuild -showBuildSettings
Caches

Clear DerivedData

Clear DerivedData only when the error points to stale indexes, module caches, or intermediate artifacts. Record the path and symptoms first so a stable, reproducible issue is not turned into an intermittent one.

xcodebuild clean
Record the command-line tools path too

Run both xcode-select -p and xcrun xcodebuild -version. If the GUI and Runner use different Xcode paths, the same project may produce different results.

CI/CD troubleshooting

A Runner starting does not mean the task environments match

Continuous integration issues often come from account permissions, environment-variable scope, cache ownership, concurrency conflicts, or artifact transfer paths. Checking each item is more effective than repeatedly registering the Runner.

AUTH

Runner permissions

Confirm that the runtime account can read the repository, write to the working directory, access the required Keychain, and run the build script. Compare the identities used by the interactive terminal and service process.

whoami
ENV

Environment variables

Verify that variables are injected into the current job rather than existing only in the login shell. Output variable names only; never write their values to logs.

env
CACHE

Cache directories

Check that dependency caches, DerivedData, and build directories are owned by the current account. Cache keys should include tool versions and the lockfile digest to prevent cross-version reuse.

du -sh
JOBS

Concurrent jobs

Confirm that jobs do not share a working directory, simulator, output filename, or Keychain state. Retest with one concurrent job, then restore concurrency gradually.

ps aux
ARTIFACT

Build artifact transfer

Verify the actual archive path, upload-step exit code, file permissions, and retention rules. If the build succeeds but no artifact appears, first check whether a script rewrote the path.

find
Remote sessions

Separate display lag from node compute performance

The remote display is affected by local networking, encoding, resolution, and session state. First confirm that command-line tasks run normally, then determine whether the issue is limited to the graphical session.

01 · Latency

Establish a local network baseline

Record round-trip latency, jitter, and packet loss over wired and wireless networks. Retest after stopping uploads or sync tasks to avoid mistaking local congestion for a node issue.

02 · Display

Lower the resolution and compare

Lower the resolution and refresh requirements first, then observe whether input latency improves. If command-line builds remain stable while the display lags, investigate the remote session path.

03 · Input

Check keyboard mapping

Verify the local keyboard layout, modifier-key mapping, and remote input method state. For shortcut issues, test first in a plain-text editor rather than judging directly inside development tools.

04 · Session

Check locking and reconnection

Confirm whether the original session is locked or disconnected. Safely disconnect the old session before reconnecting; do not create multiple graphical sessions that compete for the same desktop.

Submit support request

Provide all six categories so the ticket can enter troubleshooting directly

Support does not need your private key. Provide information that links the issue to an order, identifies the time, and reproduces the error; redact sensitive data before submitting.

Order ID
Order number shown in the Console
Node location
Singapore, Japan (Tokyo), South Korea (Seoul), or Hong Kong
Time of incident
Failure start time and most recent reproduction time, including the timezone
Reproduction steps
List the key steps in order, starting with the command or action where the issue began
Log excerpt
First error, exit code, and relevant output before and after it, with sensitive data redacted
Expected result
Describe the build, signing, session, or billing result that should have occurred
Escalation

When to stop self-troubleshooting and contact support

The connection entry point remains unreachable

You verified the current order credentials and retested from another network, but the target port still cannot establish a connection.

The same task reproduces consistently

You pinned the code, commands, and tool versions, but the error still occurs at the same step.

Node or storage requirements change

You need to review node selection, storage expansion, or task resource limits, and the current order details are insufficient.

Billing details cannot be matched

The order ID, billing period, or payment record does not match what appears in the Console and requires manual review.

Get started

Need a new dedicated physical node? Choose the model and term directly

All three Apple Silicon configurations are available by day, week, month, or quarter. Choose from data centers in Singapore, Japan (Tokyo), South Korea (Seoul), and Hong Kong; live availability is determined by the Console.