Route by issue

Identify the failure layer before submitting a reproducible issue

This guide covers connections, Xcode builds, CI/CD runners, storage, node networking, and billing for dedicated physical Mac nodes. Complete the basic checks in order, then submit the order, environment details, and redacted logs together to reduce back-and-forth.

6 categories
Issue entry points
5 regions
Available node regions
7 items
Required ticket details
Batch diagnostics BUILD / CHECK
Awaiting logs
Connection Address, port, credentials
Check first
Environment System, Xcode, SDK
Align next
Build Dependencies, signing, cache
Reproduce
Delivery Archives, uploads, artifacts
Verify
Recommended order Connection → Environment → Build → Delivery
Support overview

Choose a check path by symptom

Do not change the network, system version, and build configuration at the same time. Change one variable at a time, and keep the original error text and timestamp to determine whether the issue is in the connection, environment, or project layer.

Connection issues

The address is reachable, but the session will not open

First verify the node address, port, username, and credentials. Then check local network restrictions, client encryption settings, and session status. Do not repeatedly try old credentials.

Open connection checks
Xcode builds

Compilation, archiving, or upload fails

Record the failed stage, then check disk space, Xcode and SDK versions, dependency lockfiles, signing materials, and the complete build log. Preserve the first actual error.

View the build diagnostic sequence
CI/CD

Runner offline or jobs not scheduled

Check the runner service process, registration status, label matching, working-directory permissions, and concurrency limit. Showing as online does not guarantee that the current job labels will match.

Verify runner configuration
Storage expansion

Caches and build artifacts fill the disk

Separate usage from source code, dependency caches, DerivedData, archives, and delivery artifacts. Export required files first, then clean by directory; do not delete data whose purpose is uncertain.

Read storage FAQs
Node migration

Team or repository location has changed

Record the current node, repository hosting region, main operator location, and large-file transfer direction before evaluating migration. Prepare an independent copy of code and build artifacts first.

Compare nodes and network paths
Billing issues

Order, billing cycle, or payment status needs verification

Prepare the order number, selected configuration, billing cycle, payment method, and console status. Submit only the transaction identifier; never send full card details or private keys.

Submit a billing ticket in the console
First-time setup

Fix the node baseline before installing project tools

When you first access a node, complete connection and security checks before configuring the development environment. This separates system issues from project dependency issues and makes later reproduction clearer.

  1. 01

    Get connection details from the console

    Verify the node assigned to the order, server address, port, username, and temporary credentials. Use connection details only with currently authorized members; do not forward them through chat history or public documents.

    Done when: You can establish a stable session and confirm that you entered the node assigned to the order.
  2. 02

    Complete account security setup

    After first access, update the temporary credentials and create system accounts that follow your team’s permissions policy. Ensure administrator access is limited to members who need to install tools or adjust services.

    Done when: Temporary credentials are no longer used, and everyday and administrative accounts have distinct purposes.
  3. 03

    Record the system and development baseline

    Record the macOS version, chip, available disk space, Xcode version, command-line tools path, and target SDK. Add this information to your team’s build operations guide.

    Done when: The same version set explains differences between local and cloud builds.
  4. 04

    Install dependencies and the runner

    Install dependencies from the project lockfile, set a dedicated cache directory, and then register the self-hosted runner. For the first job, use low concurrency to verify signing, archiving, and upload paths.

    Done when: A minimal build job runs repeatedly and leaves a complete log.
Baseline record

Recommended environment checklist

  • Full macOS and Xcode version numbers
  • Target SDK and command-line tools path
  • Dependency manager and lockfile versions
  • Runner name, labels, and working directory
  • Cache directory and maximum concurrent jobs
First validation

Confirm the pipeline with a minimal job

Start with a known-buildable commit and run only dependency installation, compilation, and archiving. After success, add parallel jobs, cache restoration, and delivery steps.

Prepare before checking the connection
Build troubleshooting

Eliminate failures step by step—do not change six variables at once

Build issues typically span six layers: space, signing, versions, dependencies, logs, and concurrency. After each layer, rerun the same commit and record whether the result changes.

01

Disk space

Check available space on the system volume, DerivedData, dependency caches, archive directories, and exported artifacts separately. When space is low, save required artifacts first, then clean by directory.

Capacity
02

Certificates and provisioning profiles

Confirm that the selected team, certificate validity, provisioning profile target, and Bundle Identifier match. Do not attach signing private keys to logs or tickets.

Signing
03

Xcode and SDK versions

Record the Xcode path actually used for the build. Confirm that the command-line tools do not point to another version, and verify that the project’s target SDK is installed.

Version
04

Dependency cache

Use the lockfile to determine whether the cache is stale. First try a clean build without restoring the cache; if it succeeds, restore dependency caches one at a time to locate the inconsistency.

Dependencies
05

Complete build log

Keep the command, exit code, and first actual error. The final screen often omits the initial failure, so include a redacted log from job start through exit.

Logs
06

Number of parallel jobs

Reduce concurrency to one job and observe memory, disk, and network usage. If one job succeeds but parallel jobs fail, increase concurrency gradually to find the stable limit.

Concurrency

If all six checks are complete and the cause remains unclear, submit the failed commit identifier, command, environment versions, exit code, and redacted log.

Submit a build issue ticket
CI/CD support

Make your runner discoverable, recoverable, and auditable

A dedicated physical node works well as a self-hosted runner, but reliable operation depends on a clear registration strategy, labels, service management, cache boundaries, and permission controls.

A1

Registration

Use a unique runner name for each node. Record its repository or organization, registration scope, working directory, and service account. Revoke the old registration before migrating a node.

A2

Labels

Labels should describe stable facts such as chip architecture, major Xcode version, node region, and purpose. Do not create hard-to-maintain combinations from temporary project names.

A3

Service availability

Run the runner as a managed service and record its startup method and log location. After a system restart, verify automatic recovery and test a minimal job.

A4

Cache directories

Manage dependencies, DerivedData, and archives in separate directories with cleanup thresholds. Caches accelerate builds; they should not be the project’s only copy or a long-term delivery repository.

A5

Least privilege

Give the everyday build account access only to the directories and commands required by its jobs. Use administrator privileges only when installing tools, changing system configuration, or managing services.

Runner-offline check order

Service process → Registration validity → Label matching → Working-directory permissions → External connectivity → Platform job queue.

Submit a runner ticket
Glossary

Standardize terminology before describing the issue

Consistent terminology in tickets prevents physical nodes, remote sessions, runners, and build caches from being treated as one type of failure.

Physical node
An Apple Silicon Mac device that actually runs macOS, Xcode, and build jobs. A node is a hardware delivery unit, not a shared virtual resource.
Dedicated
The node resources assigned to one order are used by that customer; CPU, memory, and local storage are not mixed with other customers’ jobs.
Non-virtualized
The system runs directly on a physical Mac rather than splitting one device into multiple virtual instances. Hardware specifications correspond directly to the order configuration.
VNC
A connection method for viewing and controlling the macOS graphical interface remotely. Enter the address, port, account, and encryption options according to the connection details.
Self-hosted runner
A runner registered by your team with a CI/CD platform and used to execute jobs on a dedicated node, with control over tool versions, caches, and concurrency.
Build cache
Regenerable data that reduces repeated downloads or compilation, including dependency caches and DerivedData. A damaged cache should be safe to rebuild.
Signing certificate
Sensitive signing material used in build and delivery workflows. During troubleshooting, describe only the certificate name, status, and error; never upload a private key to a ticket.
Node region
The region where the physical node is located. Consider developer location, repository location, delivery destination, and large-file transfer direction together.
Node and network troubleshooting

Choose a region for the complete workflow, not a single latency test

VMArm offers five node regions: Singapore, Japan (Tokyo), South Korea (Seoul), Hong Kong, and the US West. Compare remote operation, repository pulls, dependency downloads, and artifact uploads together.

SG

Singapore

Suitable for Southeast Asian teams and repositories or delivery workflows primarily serving Southeast Asia.

JP

Japan (Tokyo)

Suitable for teams in Japan and East Asia, balancing remote desktop operation with access to regional build resources.

KR

South Korea (Seoul)

Suitable for developers, dependency mirrors, and delivery workflows serving South Korea and Northeast Asia.

HK

Hong Kong

Suitable for teams collaborating across Southern China and Southeast Asia; test both repository and remote-session paths before choosing.

US-W

US West

Suitable for teams on the North American West Coast and projects whose repositories, dependency sources, or delivery systems are in North America.

How to document node and network anomalies
What to check How to test What to record What to determine
Remote session Test connection and interaction during working hours and off-peak hours separately Local network, node, client version, and time of occurrence Persistent issue or time-specific fluctuation
Code repository Use the same repository and commit to test cloning, pulling, and submodules Repository region, duration, failed command, and exit code Slow connection setup or slow large-file transfer
Dependency download Run a complete dependency resolution once with caching disabled Dependency source, package manager version, failed package, and retry count Single dependency source or overall bandwidth issue
Artifact upload Compare transfers using redacted test files of the same size File size, target region, start time, and end time Uplink, target service, or file-size impact
Required ticket information

Provide the full diagnostic context at once

A ticket should not merely prove that an issue exists. It should let support identify the same order, node, time, and failed step.

Diagnostic information sheet 7 REQUIRED FIELDS
01 Order number

Used to verify the configuration, billing cycle, and delivery record.

02 Node region

Specify Singapore, Japan (Tokyo), South Korea (Seoul), Hong Kong, or US West.

03 Time of occurrence

Provide the time with its time zone and state whether the issue is reproducible.

04 System version

Provide the full macOS version, not only the major version name.

05 Xcode version

Include the version and path targeted by the command-line tools actually used.

06 Reproduction steps

Start from the normal state and describe each click or command in the order it was performed.

07 Redacted logs

Keep the error context and exit code, removing tokens, private keys, and other sensitive information.

Existing order

Submit a ticket in the console

Sign in, select the relevant order, and submit the issue. Complete order and node context is especially useful for connection, build, migration, and billing issues.

Go to the console
Pre-sales and procurement

Describe the workload and scale first

Before ordering, provide the use case, target configuration, number of concurrent builds, preferred region, and expected activation date.

View contact options

Remove access tokens, signing private keys, complete payment details, and other sensitive content before submitting. To understand data handling, read thePrivacy Policy.

Service boundaries and response process

Every step produces an output, from issue confirmation to ticket closure

Response order depends on impact and reproducibility. Support handles node delivery, connection, environment, and order issues; project business logic must still be confirmed by the project maintainers.

  1. 01

    Issue classification

    Assess the impact based on whether connection is impossible, builds are fully blocked, some jobs fail, or the request is general, and confirm whether a viable workaround exists.

  2. 02

    Acknowledgment

    Confirm receipt of the order number, node, time, environment, and logs. If required information is missing, clearly list the fields to add.

  3. 03

    Diagnostic updates

    Explain the current check layer, items ruled out, next validation action, and tests the user needs to run. Avoid repeating steps that add no new information.

  4. 04

    Closure criteria

    The ticket enters the closure process once the issue is restored, the root cause and workaround are explained, or the issue is confirmed as project configuration with actionable checks provided.

Within support scope

  • Verify order and node delivery status
  • Troubleshoot VNC address, port, and session connections
  • Basic diagnostics for node system, disk, network, and permissions
  • Check runner service status and standard configuration
  • Explain billing cycle and payment status

Requires confirmation from the project team

  • Business code logic and third-party SDK behavior
  • Project-specific scripts and internal dependency sources
  • Signing and release processes defined by the team
  • Repository permissions, branching strategy, and job triggers
  • Business acceptance criteria for build artifacts
Next step

Move your next build to a dedicated physical Mac node

Choose VMArm M4 Core or VMArm M4 Plus, then select a node in Singapore, Japan (Tokyo), South Korea (Seoul), Hong Kong, or US West. Actual availability is returned in real time by the console.