logo

Troubleshooting and reference

Every message the hosting pages can show you, what it means, and what to do next. Messages are quoted exactly as the product shows them, so you can search this page for the text you see.

Creating the server

Messages while creating a server
You seeWhyDo this
Must start with a letter and cannot contain spaces or underscores (_).The Perforce URL label becomes part of a hostname.Use letters, digits and hyphens, starting with a letter. p4 is a good default.
1 / 1 hosting serversThe project already has its one Perforce server, so Add is disabled.Use the existing server. To replace it, ask support to retire it first.
Your Perforce server is being created. Waiting for project source control to finish provisioning.Normal. Provisioning is running.Wait. Usually a few minutes. You can leave the page.
Provisioning timed outThe page stopped waiting after about three minutes, but provisioning continues in the background.Reload the page after a short wait. If nothing has changed after thirty minutes, email support@devstreamlabs.com.
Perforce service was created but project source control is not ready yet. Please refresh the page.The server exists; the page has not yet received its details.Refresh the page.
Your server is still being registered. Wait a moment and click Pay again.You pressed Pay and create server before the platform had finished registering the new service row. Nothing was charged.Wait a few seconds and press the button again.
Your payment went through, but we couldn't finish setting up your server. We've been notified and will fix it. You won't be charged again.The Team plan checkout succeeded but the server could not be built; the reason is shown under the sentence. The platform retries on its own.Wait for the automatic retries. When a Retry setup button appears, press it; if it fails again, email support with the project name. You are not charged twice.
Upgrading isn't available yet: <reason>The People panel cannot offer the Free to Team upgrade right now; the reason follows the colon (for example the server is mid-migration or restarting).Try again later, or email support if the reason does not clear.
Almost thereA migration finished but the server details are still publishing.Refresh in a moment.

No email? Check the project maintainer's spam folder. The password cannot be shown again; if the email is lost, support@devstreamlabs.com will reset it.

Connecting

Problems connecting a client
You seeWhyDo this
The fingerprint P4V or p4 trust shows does not match the connection cardYou are connecting to a different host, or something is intercepting the connection.Stop. Check the address you typed against the card. If it matches and the fingerprint still differs, email support@devstreamlabs.com. Without a p4 client you can read the server's fingerprint with OpenSSL: openssl s_client -connect HOST:PORT </dev/null | openssl x509 -pubkey -noout | openssl pkey -pubin -outform DER | openssl dgst -sha1 -c
Failed client connect, server using SSL. Client must add SSL protocol prefix to P4PORT.The address is missing the ssl: prefix; a plain Connection refused has the same cause. Hosted servers have no plaintext port.Use ssl:p4.starfall.northwind.example.com:1031.
Perforce asks you to change your password on first loginYour administrator account is required to replace the emailed temporary password.Run p4 passwd, then p4 login again.
Error in user specification. User type can't be changed.P4V's Connection Setup Assistant was on Create a new user account with your administrator username. That account already exists, and the assistant tries to replace it with a fresh spec.Cancel the assistant. Use Connection → Open Connection with your administrator username and the emailed password, or choose Log in … with an existing user account in the assistant. Sign in with the account from the email before you create anyone else.
P4V's Connection Setup Assistant shows a warning box with no textThe server refused a command from a session that has not signed in (Perforce password (P4PASSWD) invalid or unset.), and the assistant drops the message. It happens on the Create a new user account branch.Same as above: sign in as your existing administrator account through Open Connection.
The new password is rejected as too weakThe server runs at security level 4.Use at least eight characters with a mix of character classes.
Cannot add <name>: this server already has 5 people, all 5 the free plan supports. Adding another would limit the whole repository to 1,000 files. Remove someone first, …The Free plan holds 5 standard users, and Build on check-in takes one place while it is on. The server refuses a sixth rather than let Perforce cap the depot at 1,000 files.Remove or convert a user on the server, turn Build on check-in off, or move the server to the Team plan from the People panel. See Plans, people and billing.
Submits are refused but syncs still workThe server is read-only. On the Team plan this happens when payment could not be collected after the retry period; the People panel reads Payment is overdue, so your server is read-only, and an email titled Perforce on <project> is now read-only was sent.Pay the invoice from the link in that email. Write access returns within a few minutes; there is nothing to re-enable.
Swarm keeps returning you to its login pageSwarm requires sign-in and uses Perforce accounts.Sign in with the same username and password you use for p4.

P4V reports the same two conditions as dialogs. A wrong or changed fingerprint opens Perforce Fingerprint Required with the text The fingerprint send by the server ( ssl:… ) does not match the fingerprint you previously trusted. Press Cancel unless the connection card confirms the new value. An address without the ssl: prefix shows Failed client connect, server using SSL. in the Open Connection dialog itself.

P4V's Perforce Fingerprint Required dialog warning that someone may be intercepting the connection, that the fingerprint sent by the server does not match the one previously trusted, the fingerprint value, an unticked Trust this fingerprint checkbox, and Cancel and Connect buttons.
P4V when the stored fingerprint no longer matches. Stop and compare with the connection card.
P4V's Open Connection dialog with the server address typed without the ssl: prefix and the red message Failed client connect, server using SSL. Client must add SSL protocol prefix to P4PORT.
The same plaintext error inside P4V's Open Connection dialog.

The two Connection Setup Assistant failures from the table look like this. Both come from the Create a new user account branch.

P4V's Connection Setup Assistant on its Log In page with Create a new user account selected and the administrator username sam typed in, and a warning dialog that shows only a warning icon and an OK button, with no message text.
The same branch one step earlier: a warning box with no text. The server refused a command from a session that has not signed in.
P4V's Connection Setup Assistant on its Log In page with Create a new user account selected and the administrator username sam typed in, and an error dialog reading Error in user specification. User type can't be changed.
The assistant's Create a new user account branch with the administrator username: the server refuses to overwrite the existing account.

Migration: the rsync command is refused

The intake checks your command before anything runs and shows one of these reasons next to the field. Nothing you type is ever passed to a shell; the command is parsed into a fixed shape and rebuilt.

rsync command validation messages
You seeWhyDo this
the command must invoke rsync (got '…')The command did not start with rsync.Start with rsync.
password authentication (sshpass) is not supported; authorize the provided SSH public key on your server insteadOnly the key we issued is used to connect.Remove sshpass or any password option and install our key line as in the handshake.
the only accepted form is -e 'ssh -p <port>' to pick a portSSH options other than the port are ours to set (identity, known hosts, batch mode).Use exactly -e 'ssh -p 2222', or drop -e for port 22.
ssh port <n> is out of rangeThe port must be 1–65535.Correct the port number.
options that read or write paths on our server are not permitted--files-from, --include-from, --exclude-from, --log-file, --temp-dir, --partial-dir, --backup-dir, --compare-dest, --copy-dest and --link-dest name paths on the destination.Remove the option. Use inline --exclude=PATTERN if you need to exclude files.
the transfer must never modify your source server--remove-source-files would delete from your server.Remove it.
overriding the remote rsync binary is not supported--rsync-path is refused.Remove it.
rsync daemon mode is not supported--daemon, --config and --dparam are for rsync servers, not transfers.Remove them.
batch mode is not supportedBatch files cannot be produced or consumed in a managed transfer.Remove the --write-batch / --read-batch options.
destination must be $DSL_P4ROOT/ (got '…')We substitute the new server's P4ROOT; the destination is fixed.End the command with "$DSL_P4ROOT"/, including the quotes and the slash.
source must be user@host:/absolute/path/to/p4root/The source must name a user, a host and an absolute path.For example perforce@p4.oldstudio.example.com:/opt/perforce/p4root/.
source path must end with '/' so the p4root CONTENTS are copied (content-to-content), not nested under a directory -- use '…/'Without the trailing slash, rsync would create a p4root directory inside the new P4ROOT.Add the trailing slash to the source path.
source path '…' must be absolute and may only contain letters, digits, and . _ / @ + - (no spaces)Relative paths and unusual characters are refused.Use the absolute path to your P4ROOT or backup directory.
source path must not contain '..' segmentsParent-directory segments are refused.Write the path without ..
<option>: option is not supported in managed transfersAn rsync option outside the accepted set.Keep to -a, -z, --exclude, --bwlimit and the port form of -e.
Migration state messages
You seeWhyDo this
finalize requires a completed transfer (migration is <state>); stop your source server, run one more sync, then finalizeFinalize is only available once a sync has completed.Choose Start transfer or Re-sync changes, wait for Your data is copied, then finalize.
finalize refused: <n> people on a free-plan serverThe copied data holds more standard users than the Free plan allows. The Your data is copied card shows the same fact as Too many people for the free plan.Remove people on your source server and re-sync, or create the server again on the Team plan.
Your data is copied, but we couldn't bring your server online. We've been notified and will fix it; your copied data is kept.Finalize copied the last changes but the new server failed to come up. The reason is shown beneath.Wait for the automatic retries; press Retry setup when it appears. Your old server and the copied data are untouched.
the rsync command cannot be changed while the migration is <state>The command is locked while a transfer runs or once the migration is finalizing.Wait for the transfer to finish, or choose Cancel transfer first.
no validated rsync command has been submitted yetStart transfer was requested before a command was accepted.Enter the command and choose Check command first.

Migration: the transfer fails

When a transfer stops, The transfer did not finish shows the error exactly as the transfer reported it. These are the common ones.

Transfer errors
You seeWhyDo this
ssh: connect to host p4.oldstudio.example.com port 22: Connection timed outYour firewall is not letting our transfer address in, or the host or port is wrong.Allow inbound SSH from the address shown in the checklist (203.0.113.20 in this guide) and check the host and port in your command. Copying from another Dev Stream Labs project? Use the picker instead of a command — see Copying from another Dev Stream Labs project.
Permission denied (publickey).The key line is not installed for the user in your command, or the command names a different user.Re-check the handshake: the key line must be in that exact user's ~/.ssh/authorized_keys, with permissions 600.
rsync: change_dir … failed: Permission deniedThe user cannot read your P4ROOT.Grant that user read access to the whole directory tree, or use a user that has it.
Host key verification failedYour server's SSH host key changed since our first contact. We refuse rather than continue silently.Compare the Your server's host key card with your server. If the change is expected, email support@devstreamlabs.com to re-pin it.
Stalled — retryingNo progress for a while; usually the network.Wait. The transfer resumes on its own and retries up to five times before it is marked failed.
some files vanished before they could be transferredYour server is live and files changed during the copy. Expected.Nothing. A later sync picks them up; the final delta at finalize catches everything.

Build on check-in

Build on check-in messages
You seeWhyDo this
this project has no Build Stream service to send check-ins to; create one firstCheck-ins need a Build Stream service on the project to be sent to.Follow Add Build Stream to this project, then turn the switch on again.
the project's Build Stream service does not have a URL yet; try again once it is readyBuild Stream is still provisioning.Wait a few minutes and try again.
build triggers are configured on the primary Perforce server, not the standbyAn internal condition you should not see.Email support@devstreamlabs.com.
Build on check-in is off for this Perforce server, so it has no build account. Turn on Build on check-in on the Hosting page to build this branch.Build Now was pressed while the switch is off. The switch controls the dsl_bot account as well as the trigger, so nothing can sync your depot.Turn Build on check-in on, wait for the card to leave Turning on…, then press Build Now again.
Turning on… Perforce restarts for about a minute while this changes; a submit during that window fails and can simply be retried.Creating or removing the build account needs one short server restart.Nothing. Retry any submit that failed during that minute.
Pushes are arriving on branches that are not set up to buildSubmits are reaching Build Stream, but the path is not mapped to a branch with a build configuration.Good news: delivery works. Get the depot path mapped; see Map a depot path to a branch.
The switch is on but nothing builds and no notice appearsEither the switch is still applying, or the submit touched no mapped path.Work through Turned on, but nothing builds.

Once a submit has started a build, what happens next belongs to Build Stream. Build failure messages, farm warnings and webhook checks are in the Build Stream guide's troubleshooting page.

Backup & export

Export form and endpoint messages
You seeWhyDo this
no SSH public key suppliedThe key field is empty.Paste the single line from perforce-backup-key.pub.
supply a single public key line (no newlines)More than one line was pasted, or a private key.Paste only the one-line public key.
malformed public key: expected '<type> <base64> [comment]'The line is not in OpenSSH public-key format.Copy the .pub file's contents exactly.
unsupported key type 'ssh-dss'; use one of ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, ssh-ed25519, ssh-rsaDSA keys are not accepted.Generate an Ed25519 key: ssh-keygen -t ed25519.
malformed public key: the key body is not valid base64The key body was altered, often by a line wrap.Re-copy the key as one line.
no backup server IP suppliedThe address field is empty.Enter your backup machine's public address.
'…' is not a valid IP address or CIDRThe address did not parse.Use dotted notation, for example 198.51.100.7 or 198.51.100.0/28.
the backup IP must not be an all-addresses range (/0)The endpoint must be locked to a real source.Enter your backup machine's address or a narrow range.
Permission denied (publickey) on the first pullThe endpoint showed Enabled a moment before the key landed on it, or the pasted key was not the complete .pub line.Wait a minute and retry. If it persists, use Change access and paste the whole line from perforce-backup-key.pub again: the form accepts any base64 body, so a truncated key is only caught when you connect.
Setting up your backup endpoint… for a long timeAllocation or arming is slow, or failed.Wait a few minutes. If a reason appears on the panel, correct it and choose Try again.
<reason shown in red> with a Try again buttonAllocating or arming the endpoint failed and will not retry itself; the reason is the platform's own message.Press Try again: the form reopens with your values so you can correct the key or the address, then Enable export again.
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! (from your backup machine)You removed and re-enabled export, so the endpoint has a new host key, and your known_hosts file still holds the old one.Compare the new Host key row on the panel with what ssh reports, remove the old entry from ~/.ssh/known_hosts on the backup machine, and pull again.
Connection refused / timed out (from your backup machine)You are not connecting from the whitelisted address, or the port is wrong.Check Whitelisted from and Endpoint on the panel against your machine's public address and the port in your command.
Permission denied (publickey). (from your backup machine)The -i path is wrong, or a different key than the one you pasted.Point -i at the private half of the key you pasted.
p4 export: this endpoint is read-only; only 'rsync --sender' (a pull) is allowedThe command was changed into a push.Use the command from the panel, editing only the two placeholders.
p4 export: only an 'rsync' pull is permitted on this endpointYou opened a plain ssh session, or ran a command that is not rsync.Use the command from the panel; the endpoint accepts nothing else.
The restored server says it is unlicensedLicenses are never exported.Install your license file into the restored P4ROOT. See Licensing.

Frequently asked questions

Can I switch a server from Start fresh to Bring my server across?

No. The starting point is chosen when the server is created and cannot be changed. To migrate data into a project whose server was created empty, ask support to retire the server and create it again in migration mode.

Where is my administrator password?

The temporary password for the administrator account you named was emailed once to the project maintainer, in the message titled Perforce is ready for <project name> (the project's display name, Starfall in this guide). It is never shown in the app or the API, and Perforce makes you replace it at first sign-in. If the email is lost, email support with the project name and we will reset it.

Can a project have two Perforce servers?

No. One Perforce server per project. The hosting page shows the count as 0 / 1 or 1 / 1 hosting servers.

How do I delete a Perforce server?

There is no delete button. Retiring a server is done by our team so that a server holding your history cannot be removed by an accidental click. Email support with the project name; pull a backup first if you want a copy.

Is Swarm optional? Does it cost extra?

Swarm (code review) is part of the Team plan, which the app labels Paid. On a Team server you turn it on from the Code review (Swarm) card on the hosting page; on the Free plan the card offers an upgrade instead. Nothing extra is charged beyond the plan.

Do you back up my server, or do I have to?

Both are true. The platform keeps its own backups of your server. Backup & export additionally gives you your own restorable copy on a machine you control, whenever you want one.

Which ports do I need open?

Outbound from your clients and build machines: your server's TLS port, shown on the connection card (allocated per server). Inbound to a server you are migrating from: SSH from our transfer address only, and only for the duration of the migration. For exports: outbound from your backup machine to the endpoint port shown on the panel.

Where do I see invoices or change the card?

On the Team plan the hosting page ends with a Billing panel: the card on file (Change card), every invoice with a PDF link, Pay now for an unpaid invoice, and Cancel plan. The Payment failed email also carries a Pay the invoice link that opens Stripe's invoice page.

What is dsl_admin? Can I use it?

No. dsl_admin is our operator account for looking after your server (checkpoints, backups, verification, restarts). It cannot read your files, takes none of your seats, and its password is never shared; P4V and P4Admin do not open for it. Your own administrator account, the one you named when you created the server, is the one you and your team use.

Can I connect without TLS?

No. Hosted servers accept ssl: connections only.

Does a migrated server keep my users and passwords?

Yes. Users, passwords and your administrator come across with your data; sign in with the account you already use. dsl_admin is added alongside your existing protections as our operator account. Those users are your people: a Free plan server cannot be finalized with more than 5, and the People panel shows the count afterwards.

How long does a migration take?

It depends on the size of your depot and your server's upload bandwidth; large depots can take hours for the first sync. Later syncs copy only what changed. Your server can stay live until you finalize.

How many users can I add?

As many as your plan holds: 5 people on the Free plan (Build on check-in takes one place while it is on), or the seats you bought on the Team plan, which you can change from the People panel with Add people. Your administrator account counts as one of them; dsl_admin and dsl_replica do not. See Plans, people and billing.

Reference

Addresses and ports

Hostnames and ports
WhatPatternExample
Perforce serverssl:<label>.<project>.<org>.…:<port>ssl:p4.starfall.northwind.example.com:1031
Swarmhttps://<label>-swarm.<project>.<org>.…https://p4-swarm.starfall.northwind.example.com
Migration, temporaryssl:<label>.….:<public port>ssl:p4.starfall.northwind.example.com:55123
Our transfer addressShown in the migration checklist203.0.113.20
Export endpointShown on the export panel203.0.113.20:42022

What an export contains

Export contents
IncludedExcluded
A consistent checkpoint, checkpoint.ckp.N.gz, cut at most once every 15 minutesThe live db.* files
The depot archive directoriesThe Perforce license file
server.id, state, rdb.lbr, journal and journal.*
Replica and standby state, the TLS private key, our credential files

Limits

Limits
LimitValue
Perforce servers per project1
People (standard users)5 on the Free plan; 6 to 23 on the Team plan (more by arrangement)
Workspaces20 on the Free plan; unlimited on the Team plan
Depots1 on the Free plan; unlimited on the Team plan
Storage80 GB on the Free plan; 100 GB included on the Team plan, more per gigabyte
Code review (Swarm), standby serverTeam plan only
Who can configure hosting, backups and check-in buildsProject administrators
Client connectionsTLS only (ssl:)
Export source addressesOne IP address or CIDR range per endpoint
Automatic transfer retries during a migration5

The accounts on your server are listed on Accounts, security and licensing.

Getting help

Something out of date or unclear? Email support@devstreamlabs.com.