Node Operations Support

Identify the failure layer before running the next command

This guide brings together troubleshooting paths for connectivity, builds, runners, networking, and storage on dedicated Apple Silicon physical nodes. Each step identifies what to check, which command to run, and what result will guide your next move.

If you already have a node, first record its node ID and the time range when the issue occurred. If you have not ordered yet, review the three available configurations and four selectable nodes.

RUNBOOK / NODE CHECK L0—L4
L0
Node Status Verify the node ID, region, and status returned by the Console
Confirm First
L1
Connection Path Address, port, key permissions, and host fingerprint
SSH
L2
Toolchain Xcode, signing materials, Keychain, and build logs
BUILD
L3
Job Execution Runner processes, working directory, cache, and concurrent jobs
CI
L4
Hardware Path Free disk space, external SSD, networking, and Thunderbolt 5
I/O
Minimum Ticket Details Node ID + time range + command output
Choose a Troubleshooting Entry Point

Route by where the failure occurs

Do not change settings at multiple layers at once. Choose the category closest to the symptoms, complete its basic checks, and use the results to move to the next layer.

Connection Issues

SSH or graphical desktop unavailable

Start with the address, port, key permissions, host fingerprint, and credential validity. If SSH works but the graphical session does not, then check the resolution, lock state, and session recovery.

Open Connection Troubleshooting
Build Issues

Xcode, signing, or pipeline failure

First pin the Xcode version and save the original logs. Then verify signing identities, provisioning profiles, Keychain permissions, DerivedData, and the runner working directory.

Open Build Troubleshooting
Account & Orders

Questions about renewal, billing, or node details

Verify the order number, rental period, node ID, and payment status in the Console. Do not submit private keys or complete payment credentials in a ticket.

Open the Console
Hardware & Networking

Disk, bandwidth, or external device issues

Record free disk space, volume labels, network quality, and the Thunderbolt device tree. Do not format disks or rebuild volumes without a backup.

Open Hardware Troubleshooting
SSH Quick Diagnostics

Start with local permissions and the handshake

A failed connection does not necessarily mean the node is offline. First distinguish an incorrect address, unreachable port, invalid local key permissions, changed host fingerprint, or server-side authentication rejection.

Connection Check Commands SSH / VERBOSE
$ chmod 600 ~/.ssh/orbvps_node
$ ssh-keygen -F node-address
$ nc -vz node-address 22
$ ssh -vvv -p 22 \
  -i ~/.ssh/orbvps_node \
  node-user@node-address
Permission denied
Authentication materials do not match

Confirm that the username and private key belong to the current node, and check whether another IdentityFile in your local SSH configuration is overriding the key.

Connection timed out
The connection was not established

Check the address and port shown in the Console, temporarily disable local proxy rules, retest, and record the time and network where the issue occurred.

Connection refused
The destination is reachable, but the port is not accepting connections

Keep the complete verbose output and do not repeatedly delete host records. First confirm that the port matches the node delivery details.

REMOTE HOST IDENTIFICATION
The host fingerprint differs from the local record

Do not simply ignore the warning. Compare the displayed fingerprint with the delivery record in the Console, confirm the node details, and then update the local record.

01

Verify Connection Parameters

Read the address, port, and username again from the Console; do not guess from an old terminal history entry.

02

Restrict Key Permissions

The private key should generally be readable and writable only by the current user. The SSH configuration and parent directories should not be modifiable by unrelated users.

03

Save the Handshake Output

Retry once in verbose mode, retain the complete output from connection start through the failure point, and redact the address.

Graphical Desktop Connection

Work through credentials, display, lock state, and reconnection in order

Graphical sessions and SSH use separate connection paths. A working SSH connection does not guarantee that the graphical session is configured correctly, so record each symptom separately.

01

Confirm Credential Ownership

Use only the graphical-session credentials delivered for the current node. After rotating credentials, clear the old password saved by the client to prevent repeated automatic retries.

02

Lower the Resolution for the First Connection

If you see a black screen or a frozen display, connect first at a lower resolution with a single monitor. Increase the resolution gradually after reaching the desktop to determine whether display settings are involved.

03

Check the Session Lock State

If you can see the lock screen but cannot proceed, first verify keyboard input and focus, then use SSH to check system load and remaining disk space.

04

Reconnect After Disconnecting

Close the client connection deliberately, wait for the session to be released, and reconnect. Do not rapidly create multiple parallel graphical sessions, which can make it unclear which desktop is active.

Record Two Sets of Results When Requesting Support

State whether SSH works, where the graphical client stops, the resolution used, the client’s exact error text, and the time range of the last successful connection. Do not submit the complete access password.

Xcode & Signing

Pin the toolchain, then narrow down the signing failure

First confirm the Xcode path and version actually being used, then check available signing identities, provisioning profiles, Keychain access, and project caches. Do not upgrade dependencies and replace signing materials during the same investigation.

Toolchain

Verify Xcode and Command Line Tools

  • Save the complete output of xcodebuild -version .
  • Use xcode-select -p to verify the current Developer directory.
  • Confirm that the pipeline and interactive shell use the same environment variables.
Signing Materials

Check identities and provisioning profiles separately

  • List the identities currently available for code signing and their validity status.
  • Verify the app identifier, team, and validity period of the provisioning profile.
  • Confirm that the build process can read the corresponding Keychain, not merely that it is visible to the current desktop user.
Caches & Logs

Establish a reproducible clean baseline

  • Save the failure log first, then clear the DerivedData for the target project.
  • Rerun with the same scheme, configuration, and destination.
  • Archive the original .xcresult; do not submit only the last few lines from the terminal.
Signing & Version Checks XCODE / CODESIGN
$ xcode-select -p
$ xcodebuild -version
$ security find-identity \
  -v -p codesigning
$ profiles show \
  -type provisioning
$ xcodebuild \
  -workspace App.xcworkspace \
  -scheme App \
  -configuration Release \
  -resultBundlePath Build.xcresult \
  build
Log Boundaries

Keep the command, scheme, configuration, failed target, first error, and its context. Remove repository credentials, tokens, and business data before submitting.

CI/CD Runner

Determine whether the job is stuck at the process, directory, or resource layer

A self-hosted runner showing as online does not mean its job environment is complete. Check the runner process, working-directory permissions, cache usage, concurrent jobs, and automatic recovery after restart.

A

Process Status

Confirm that the runner service is still running under the expected user and that its startup arguments point to the correct configuration. If the process repeatedly exits, save the exit code and recent logs first.

ps aux | grep -i runner
B

Working Directory

Check directory ownership, available space, and lock files from old jobs. Do not delete a working directory that is still being used by a running job.

df -h && du -sh ./work
C

Cache Strategy

Distinguish dependency caches, DerivedData, and build artifacts. Locate the problematic cache key first, then clean only the affected project instead of clearing all reusable content.

du -sh ~/Library/Developer/Xcode/DerivedData
D

Concurrency & Recovery

Check whether multiple jobs are competing for the same Keychain, simulator, or working directory. After a restart, run one controlled test job before restoring the normal queue.

uptime && sysctl -n hw.memsize
Recovery Order Pause new jobs → Save logs → Stop abnormal processes → Verify directories → Start the runner → Run a single-job test

If the test job succeeds but concurrent jobs fail, also provide the concurrency count, job labels, and shared-resource list.

Networking & Storage

Validate link quality, disk capacity, and device detection separately

Reduced throughput, slower builds, and a missing external volume can look similar. First collect the system’s built-in diagnostics, then determine whether the issue involves networking, the file system, or the external-device path.

Networking

Verify Basic Link Quality

Use the built-in network quality tools to record upload, download, and responsiveness, along with the test time range. Cross-region results can be affected by the local carrier and network path.

networkQuality -v
route -n get default
ifconfig
Internal Storage

Check Capacity and Volume Status

First confirm the free space on the system and data volumes, then identify the largest working directories. For build failures, check temporary directories and DerivedData especially closely.

df -h
diskutil list
du -sh ~/Library/Developer/*
External Devices

Confirm the SSD and Thunderbolt 5 Path

Check the disk list and Thunderbolt device tree separately. If the device is visible but the volume is not mounted, collect its status first; do not immediately erase or repartition it.

diskutil list external
system_profiler SPThunderboltDataType
diskutil info /Volumes/VolumeName
Upgrades & Runtime Changes

Keep a rollback baseline before scheduling a restart test

OrbVPS nodes run normally 365 days a year. Users schedule system upgrades, toolchain changes, and restarts around their own workloads; if urgent infrastructure changes require action, the relevant information will be recorded in the Console.

01

Create a Change Checklist

Record the current macOS, Xcode, and runner versions, key dependencies, and rollback-ready build logs. Do not replace the toolchain without a baseline.

02

Back Up Your Data

Back up repositories, signing materials, runner configuration, cache policies, and required build artifacts, then verify from an independent location that the backup can be read.

03

Schedule a User-Side Restart Window

Pause new jobs, wait for running jobs to finish, save the logs, and then restart. Do not change networking, signing, and build settings at the same time during the restart.

04

Run Recovery Validation

Verify SSH, the graphical desktop, disk mounts, the Xcode version, and one controlled build job in sequence before restoring the normal concurrent queue.

Still Cannot Identify the Cause

Give the Support Team Reproducible Evidence

Include the node ID, issue time range, affected jobs, commands already run, original output, and redacted screenshots. Existing customers should submit a ticket in the Console; pre-purchase configuration or region questions can be sent through the contact page to support@orbvps.com.