Support for active projects

Build stuck? Start here.

First, work out whether the issue is a connection, a failed build, or an expired rental. Follow the steps below. If you need help, include your machine ID, the error, and when it occurred.

For an existing order, sign in to the account used to place it and submit a support ticket. This helps us identify the right machine and billing details.

99.9% Monthly uptime commitment

A clear service commitment beyond your delivery schedule

Based on a 30-day month, 99.9% monthly uptime allows for approximately 43 minutes of downtime. This is a calculation based on our service commitment, not a record of historical uptime. All nodes operate year-round, 365 days a year.

Downtime beyond that allowance extends your service period on a pro-rata basis. Submit a ticket through the control panel with the affected machine and time range, and keep any connection error details so we can verify the impact.

Service unavailability, local network issues, and failed project builds need to be investigated separately. The terms of service define exceptions for circumstances beyond our control and issues caused by user actions.

Capture the details before making changes

Troubleshoot one step at a time

Note the last action that worked, then check the steps below. Avoid changing the network, certificates, and build version all at once; otherwise, it is hard to tell what fixed the issue.

Connection: check the machine, then the access method

Remote Desktop won't open. What should I check?

Open the relevant instance in the control panel and check its machine ID, service status, and expiry date. Use the connection address and login details shown on that instance's details page. Don't reuse details from an earlier order or another customer's machine.

Once you've confirmed the address, check the Remote Desktop client's connection method and account. If the client times out, try again on a different local network. If authentication fails, check the username, password, and keyboard layout. Don't keep changing passwords without distinguishing between these two errors.

If it still fails, note the client name, full error message, time, and time zone. Redact passwords from screenshots. Connection credentials are available only in the signed-in instance details; never post them publicly.

SSH timeout or authentication failure? Here's what to do.

Find the SSH address, port, and username in the instance details in the control panel. For a connection timeout, first check the address, port, your local outbound network, and the machine status. If authentication is denied, check the account and the authentication method you're using.

For more detail, add -v to your existing connection command and see whether it gets stuck while establishing the connection or during authentication. Include the relevant error lines in your ticket. Never send a private key, password, or a complete log containing sensitive paths.

SSH works well for command-line builds. For initial checks of the graphical setup, Keychain permissions, or Xcode configuration, Remote Desktop is often easier to work with.

Builds: check the toolchain, signing, and export separately

Xcode or signing error? What should I check first?

First, confirm which Xcode version the project requires. Check the active toolchain with xcodebuild -version and xcode-select -p. After installing or switching versions, complete any first-launch setup in the graphical interface before running your build script.

Signing assets must be provided with the customer's authorisation. Import the signing certificate into the Keychain used by the project, then check that it includes the matching private key, is still valid, and matches the team, Bundle Identifier, and export method in the provisioning profile.

If compilation succeeds but export fails, keep the Archive and export errors separate. Try validating the process in Xcode before adding automation. Re-running the whole pipeline won't help if the signing assets haven't been verified.

How do I build an IPA for a Flutter project developed on Windows?

Sync your code and dependency lockfiles to the cloud Mac. Start by checking the iOS toolchain with flutter doctor -v, then run flutter pub get. The team should use the Flutter version specified by the project; avoid upgrading dependencies just before delivery.

After configuring the Xcode project and signing, run flutter build ipa. If the error occurs while installing dependencies, resolve that first. If it points to signing or a provisioning profile, review the signing configuration instead; fetching dependencies again usually won't fix it.

When the build succeeds, export the IPA and any required symbol files, and confirm which commit was used. You can continue day-to-day development on Windows; the final iOS build and signing must be completed on a Mac.

React Native works in development. Why is the Release build failing?

Pin the Node.js, package manager, and project dependency versions, then install the iOS dependencies as described in the repository. If the project uses CocoaPods, open the corresponding workspace rather than the standalone project file.

In Xcode, select the correct Scheme and Release configuration, then run Archive. Check whether the failure is in JavaScript bundling, native dependency compilation, or signing and export. A local debug server used in development does not mean the release bundle already contains all required assets.

In your ticket, include the failing stage, the first relevant error, and the tool versions. Errors in application code or third-party dependencies need to be fixed by the project team using the source code. Our support team can help investigate machine connectivity and environment issues.

Working with several clients? How should code and certificates be separated?

For parallel client work where clear separation matters, rent a separate dedicated physical machine for each client. Match each machine ID to its repository, Keychain, and delivery date, and avoid build queues on a shared machine.

For a small project that needs an occasional build, you can rent one machine by the day and rotate it between projects. At a minimum, keep local user accounts, code directories, and signing assets separate. This can make work easier to manage, but it is not the same as using separate physical machines.

A dedicated machine is assigned to one rental customer; it does not automatically isolate every project within that customer's studio. If client contracts specify data boundaries, confirm those requirements before deciding whether to share a machine or use separate ones.

Rental & billing: check the order status before planning delivery

The project is delayed. How do I renew, and what happens if I don't?

In the control panel, open the relevant instance's order or subscription management page to check its expiry date and renewal options. Confirm the machine and rental period before paying. Don't rely on a machine note alone, or you may renew the wrong customer's project.

Your service stops at expiry if you don't renew, with no cancellation fee. Submitting a payment doesn't mean the rental has been extended; check the payment result and updated expiry date in the control panel. If you need to keep working, confirm the renewal before the current rental ends.

Payment not confirmed, or need billing details? Here's where to look.

We accept USDT-TRC20 and Visa / Mastercard / Amex (via Stripe) only. All payments are settled in US dollars (USD). The payment options available for your transaction are determined by the response from the payment gateway.

If your payment status hasn't updated, find the relevant bill in the control panel and check the order number, amount, and gateway result. For USDT-TRC20 payments, verify the network and receiving details shown on the page. Don't make repeated payments to try to refresh the status.

Invoices and billing details are available in the control panel. If you need help, include the bill number in your ticket. For on-chain payments, you can include the transaction hash. Never send your full card number or security code.

Set the rental period to match your delivery schedule

Renew if the project runs over; export your data before you finish

Choose a daily, weekly, monthly, or quarterly rental period, with no long-term contract. Renewing and keeping your data are separate decisions: whatever you decide, keep a copy of important deliverables in your team's own storage.

  1. 01

    Check the expiry date

    Confirm the machine's expiry date in the control panel, leaving enough time for a final build, artifact upload, and download check. If the client is still reviewing the work, decide whether to extend the rental rather than leaving the final build until the last minute.

  2. 02

    Export and verify your backups

    Keep the IPA, Archive, symbol files, and any necessary logs. Push any uncommitted code to an authorised repository. If certificates need to be transferred, export the associated private keys with the customer's authorisation and store them securely with encryption. Share passwords separately, and verify the backups before cleaning up the machine.

  3. 03

    Renew or let the rental expire

    If the project is delayed, renew the relevant order or subscription in the control panel and confirm the new expiry date. If delivery is complete and you don't renew, service stops at expiry with no cancellation fee. Don't treat a stopped machine's disk as an archive or rely on recovering data after expiry.

Handover before switching clients

Clean up the previous project before starting the next

If you're continuing with the same project, keep the toolchain you've already verified. If you're switching clients or need a fresh environment, export your files first, then use a support ticket to confirm the reinstallation arrangements. Reinstalling isn't the first fix for every build error.

Customer data stays yours during the rental

Code, certificates, and build artifacts on the machine belong to the customer. VMSSD does not access this data unless you explicitly authorise troubleshooting in a support ticket. Before sharing logs, remove tokens, private keys, passwords, and customer business data.

If you'd like help checking the environment, describe the scope of your authorisation and the issue. You don't need to hand over the entire repository.

Authorise access for a specific issue

Back up before requesting a reinstallation

In a control panel ticket, provide the machine ID, reason for the reinstallation, and confirmation that your backup is complete. A system cleanup affects existing code, certificates, toolchains, and local settings. Confirm the scope and plan with support before proceeding.

Don't keep writing to the only copy while your reinstallation request is awaiting confirmation, and don't assume files can be recovered after cleanup.

Check the machine ID first

After expiry, the machine is cleaned before reassignment

If you don't renew, service stops at expiry and the system is cleaned before the machine is assigned again. A stopped machine is not long-term data storage. Your team is responsible for managing project deliverables, certificate backups, and access tokens.

When switching clients, also review access granted to repositories and automation services, and revoke credentials for machines you no longer use.

Cleanup isn't a backup
When you need our help

Give us the machine details and a clear picture of the issue

For existing machines, renewals, and payment issues, sign in to the control panel and submit a support ticket. Keep updates for the same issue in one ticket so the troubleshooting history stays together. For questions before renting, contact our support email.

More helpful than “it won't open”

Tell us which machine is affected, what stage of the project you're at, and what you expected to happen. Describe a connection issue separately from a build failure in a particular repository. If multiple machines are affected, list every machine ID.

Include enough context in screenshots to show the error, but redact passwords and tokens. In logs, include the first relevant error and a few necessary lines around it. Don't just paste “build failed,” and never send a customer's signing private key.

We don't promise a fixed response time in minutes. Check your ticket's progress in the control panel. When adding reproduction results, say what you've already tried to avoid repeating checks.

Check these four details before submitting

Machine & node
Machine ID, order number, and node name.
When it happened
Start and end times, with your time zone. If it's still happening, say so.
Error & environment
Screenshot or error text, tool versions, and the exact step that failed.
Impact & attempts
Whether one or multiple machines are affected, and what happened after switching networks or retrying.

Email us only at support@vmssd.com. For existing orders, use the control panel ticket system.

Get the issue sorted and get back to delivery

Already have a machine? Submit a ticket with the details. For your next project, rent for as long as you need.