Help center

Find the issue. Get your build back on track.

From provisioning details to your archive, find steps based on what you're seeing. For connection, billing or uptime issues with an existing order, sign in to the portal and submit a ticket so the troubleshooting history stays with the same host.

Hosts that are unreachable are prioritised. For questions about configurations or team deployments, email support@armvnc.com.

Setup & delivery

Check your order, then connect to your host

Each order provides a dedicated Apple Silicon physical host, not a virtual machine. Check payment records, delivery status and connection credentials in the portal. There's no need to send passwords back and forth by email.

Where do I find my IP address, username and initial password?

After your payment is confirmed, sign in to the portal, open the relevant order and view its host details to find the IP address, username and initial password. Before connecting, check that the configuration, host and rental term match your order. The portal shows the latest delivery status.

  1. 01Check your order

    Note the order number, configuration and host ID so you don't use credentials for another host.

  2. 02Copy your credentials

    Copy the full IP address and username, and check for accidental spaces. Don't paste your initial password into public logs.

  3. 03Change your password

    Once you're signed in, change the current user's password and save it in your password manager.

ssh -p 22 USER@NODE_IP
passwd

Replace USER and NODE_IP with the values shown in the portal. If the details show a different port, use that port. It's normal for password characters not to appear as you type them in SSH.

I've paid, but my order doesn't show connection details. What should I do?

First, distinguish between a payment being initiated and the platform confirming receipt. A completed card payment page or a submitted on-chain transfer doesn't replace the payment status shown in your order. Refresh the order and check the amount and transaction status. Don't pay again just because the page hasn't updated yet.

If the payment record and order status don't match, submit a portal ticket with your order number, payment method, amount, payment time and time zone. For USDT-TRC20, include the transaction hash. For card payments, the reference details from your receipt are enough. Don't share your full card number, security code or SMS verification code.

How do I check my configuration and host?

Arm Line M4 comes with M4 / 16GB / 256GB; Arm Grid M4 Pro comes with M4 Pro / 64GB / 2TB. Both configurations are available across these 5 locations: Singapore, Tokyo, Seoul, Hong Kong and the US East Coast. Check the portal for current availability.

For interactive work, consider the network path between your team and the host. For unattended builds, also consider the transfer path for code, dependencies and build artifacts. If your order doesn't match your expectations, check it in a support ticket before uploading project or signing materials.

SSH & VNC

Troubleshoot one connection symptom at a time

Keep the full error message, then check your local network, port and host status. The commands below use example variables; use the address, account and port shown in the portal.

VNC connects, but the desktop is blank. What should I check?

Disconnect any duplicate remote sessions, then reconnect. Check that your client is connecting to the current host and that macOS isn't at the Lock Screen or user-switching screen. If SSH still works, save your build logs. Don't force-restart a host while an archive is running.

If you can access the desktop, check Screen Sharing and the list of allowed users under “System Settings → General → Sharing”. The exact location may differ slightly between macOS versions. You can check the current console user over SSH to see whether a graphical session is active:

stat -f '%Su' /dev/console

If the screen stays blank, note whether SSH is reachable, what you were doing beforehand, and your client name and version in a ticket. Attach a screenshot without passwords. Don't repeatedly terminate system processes as a troubleshooting step.

The screen is too small, blurry or slow to scroll. How can I adjust it?

Set the VNC client's display mode to “Fit to window” first, so you can tell client-side scaling from the remote display's actual resolution. On the host, check the current display options under “System Settings → Displays”. Start with 1920 × 1080, then adjust based on your screen and network.

For connections across regions, try a lower resolution and colour depth with a higher compression level. Check that text input and menus feel responsive before increasing image quality. Build jobs don't depend on remote desktop quality, so you don't need to keep a high-resolution graphical session open just to monitor logs.

How do I troubleshoot SSH timeouts, connection refusals and authentication failures?

A timeout usually means the network path or port isn't responding. A connection refusal means the host responded but rejected the connection, so check the port and service. For authentication failures, check the username, password or key. Start in your local terminal, then attach relevant log excerpts to a ticket:

nc -vz NODE_IP 22
ssh -vv -o ConnectTimeout=10 -p 22 USER@NODE_IP

If your company network restricts outbound connections, try another network and record both results. Keep the error lines in your logs, but hide your public IP address, username, private key path and other sensitive information. Never send your private key to support.

The host fingerprint may change after a full system reinstall. Verify the host identity in the portal first; don't ignore a host key warning until you've confirmed the identity.

Keyboard symbols are in the wrong place or shortcuts behave differently. How do I find the cause?

On the remote host, check the input source under “System Settings → Keyboard → Text Input”, then check the Command, Option and Control mappings under “Modifier Keys”. Modifier keys are in different places on Windows and Mac keyboards. Test symbols in a plain text editor before entering terminal commands.

If the issue only occurs in your remote client, check its keyboard layout and shortcut forwarding settings. If clipboard sync isn't working, reconnect and check the client's clipboard sharing option. Don't use a public clipboard service to transfer passwords or signing materials.

Xcode & signing

Check your toolchain, certificates and profiles separately

First, build the same code with a known Xcode version; then troubleshoot signing. Manage your team's certificates, provisioning profiles and signing workflow according to your own access policies. Don't commit signing materials to your repository.

I have multiple Xcode versions installed. How can I check which one CI is using?

Check the active developer directory and Xcode version first. Opening a particular Xcode in the GUI doesn't mean the command line is using the same version. Changing the global selection affects jobs on the same host; for shared build pipelines, set DEVELOPER_DIR for an individual job instead.

xcode-select -p
xcodebuild -version
DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer \
  xcodebuild -version

The path must point to an Xcode installation that exists on the host. Before changing the global selection, pause jobs that depend on the current toolchain, then run sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer. Check any first-use component and licence requirements in an interactive session first.

Interactive builds work, but CI can't find a signing identity. What should I do?

Check the runner's execution user and the Keychain that contains the certificate. A logged-in GUI session doesn't necessarily carry over to a background service. After a restart, you may also need to unlock a dedicated build Keychain according to your pipeline's policies. Use these commands to check signing identities and unlock a Keychain interactively:

security find-identity -v -p codesigning
security unlock-keychain "$HOME/Library/Keychains/build.keychain-db"

The build Keychain in this example must already exist. For unattended jobs, read required credentials from CI secret variables, disable command echoing and limit certificate access. When troubleshooting, share only the error code and redacted logs. Don't send Keychain passwords, private keys or certificate export passwords.

Should I use automatic signing or a manual provisioning profile?

Start with the signing approach already validated by your project. Automatic signing suits workflows with controlled authorisation for automation. A manual profile suits release pipelines that need fixed certificates, provisioning profiles and export settings. Don't change your signing strategy and Xcode version during the same troubleshooting run.

For manual signing, check the Bundle Identifier, Team ID, certificate expiry, profile type and export method. For projects with multiple targets, check extension identifiers and entitlements as well. Track build failures separately from export failures, and include the failing stage, original error and a redacted export configuration in your ticket.

CI runners

Your terminal session and background jobs may use different environments

For both GitHub Actions self-hosted runners and GitLab Runner, check the execution user, toolchain path and secret variables. Confirm the environment with a minimal diagnostic job before restarting your full pipeline.

I can connect to the host, but the runner is offline. What should I check?

First, check on your source control platform that the runner registration is still valid. Then check the service status, repository binding and job labels on the host. Run the following GitHub Actions commands from the runner installation directory. GitLab Runner commands require the relevant program to be installed:

./svc.sh status
gitlab-runner status
launchctl list | grep -i runner

For a service managed by launchd, check the execution user, working directory and log path in its service definition. Starting at boot and starting after a user logs in are different behaviours. After configuring the service, test it without an interactive terminal. Don't paste runner registration tokens into a support ticket.

A command works locally, but CI fails or jobs overwrite each other's artifacts. What should I do?

Print non-sensitive environment details from the failing job and check the actual execution user, working directory, PATH and Xcode version. Background services don't necessarily load all of your interactive shell configuration.

whoami
pwd
printf '%s\n' "$PATH"
xcodebuild -version

Set dependency paths explicitly in the job environment. Give concurrent jobs separate paths for their workspaces, DerivedData, archives and temporary files. Get one clean build working before gradually increasing concurrency. Don't let two releases modify the same export directory or signing resources at the same time.

Billing & payments

Check the payment network, then confirm receipt

We accept USDT-TRC20 and Visa / Mastercard / Amex (via Stripe) only. All payments are settled in USD. Available payment gateways are determined by the response from our backend.

Which network should I use for USDT, and how long does confirmation take?

Be sure to select TRC20. Carefully check the payment address, amount due and payment instructions for your current order. Don't reuse an address from another order or an old screenshot. Before sending, make sure your wallet is set to the right network.

On-chain confirmation usually takes minutes, so allow a few minutes to check the transaction status. The actual time depends on network congestion, wallet broadcast and the number of confirmations required by the payment gateway; it isn't a guaranteed settlement time. Use the confirmation status shown in your order. Submitting a transfer doesn't mean the platform has confirmed receipt.

If the transaction is confirmed but your order hasn't updated, submit your order number, transaction hash, transfer amount, time and time zone. Don't send the payment again, and never share your wallet recovery phrase or private key in a ticket.

How do I check a card payment, and what should I provide if it fails?

Visa / Mastercard / Amex payments are processed through Stripe. After paying, return to the portal and check the status of the relevant bill and the amount in USD. If your bank shows a transaction but the bill status doesn't match, keep the receipt and submit a ticket. Don't repeatedly submit the payment.

Include your order number, payment time and time zone, amount, failure message or payment reference number. Redact your full card number, security code and other personal information in screenshots. Support will never need your SMS verification code.

When does billing start, and where can I check my end date and renewal status?

Rentals are available for four terms: daily, weekly, monthly and quarterly. Check the relevant order and bill in the portal for the start date, end date, renewal action and order status. Don't estimate your service end time based on when you initiated a transfer locally.

Before your rental ends, check the renewal status and outstanding bill in your order. Don't assume your service will continue without payment. Pausing a runner or disconnecting SSH doesn't end your rental. If you need to change your setup, confirm the options in a ticket first, then plan your project migration and pause builds as needed.

What should I do with my project and build artifacts before ending a rental?

All data on the host is erased after the rental ends. Before then, move your source code, build artifacts, essential logs and configuration backups, and check that your backups can be restored. Don't rely on the host's disk as your only copy.

Also unregister the runner, revoke any automation tokens used on the host and handle signing materials according to your security policies. If you're moving to another host, verify the new host before switching your release jobs.

Uptime & credits

Our uptime commitment and credit process, in one place

All hosts operate year-round, 365 days a year. The information below describes our service commitment and how to request credits; it isn't a historical monitoring report. If you experience an issue, report it first and keep a record of the times involved.

Monthly host uptime commitment

99.9%

About 43 minutes of downtime in 30 days.

Calculated as 30 × 24 × 60 × 0.1%, the exact figure is 43.2 minutes. This expresses the commitment threshold in time; it doesn't mean an interruption is expected.

If a host's uptime falls below 99.9% for a month, service credits are calculated based on the affected time.

Request credits through the portal

Sign in to the portal and submit a ticket with the host ID and incident period. Include the time zone and distinguish the time you first noticed the issue, your last successful connection and when service was restored to help us assess the impact.

  1. 01Report the issue

    Include your order number, host ID, connection method and full symptoms. Don't wait until the end of the month to report it for the first time.

  2. 02Add a timeline

    Include the start and recovery times, time zone, troubleshooting steps and redacted logs.

  3. 03Request credits

    Request service credits in the same ticket, then check the outcome and the corresponding order record.

Issues caused by force majeure or your own actions are assessed under the service terms. A single failure on your local network doesn't necessarily mean the host was unavailable. You can include connection results from another network to help pinpoint the issue.

Support tickets

Include the symptoms, impact and checks you've already tried

Hosts that are unreachable are prioritised; configuration questions are handled in the support queue. Priority is based on the actual impact, not the number of duplicate tickets. Add information to your existing ticket so the history stays together.

Describe the impact, then share logs

Say whether the entire host is unreachable, only the graphical desktop is affected, or a single build job has failed. If SSH still works, mention that so we can separate a network issue from an application issue.

For configuration questions, include the model, rental term, host and target workflow. For billing issues, include the order number, payment method, amount and payment reference. Our support team will investigate using the ticket context, but can't promise a fixed recovery time before the issue has been assessed.

For pre-sales questions or if you can't sign in, email support@armvnc.com. Don't attach passwords, private keys, tokens or signing files.

Copy and fill in the ticket template

Delete any fields that don't apply. Include only relevant error excerpts, and redact sensitive information first.

Order number:
Host ID / configuration:
Issue type: access / build / billing / credits
Impact: all connections / graphical desktop only / single job
Time first noticed and time zone:
Last known good time:
Recovery time (if resolved):
Full symptoms and error message:
Is SSH reachable:
Client / OS / Xcode versions:
Troubleshooting steps tried and results:
Recent configuration changes:
Redacted logs or screenshots:
What you'd like us to help with:

Still need help? Get in touch with our support team.

For an existing order, continue troubleshooting through a portal ticket. If you're choosing a configuration or planning a team build pipeline, visit our contact page and prepare the details listed there. Neither option requires you to share connection credentials publicly.