Skip to content

Reason codes ​

Every answer of the REST API that is not a plain success carries a stable, machine readable code, so that a client never has to parse a sentence. The code travels in messageCode at the top of the response body and, for validation failures, in errors[].code next to the field it is about. Parameters a code needs (a limit, a name, a count) travel in messageParams and errors[].params. The texts in the body are English fallbacks for humans; the consoles translate by code.

NOTE

The contract: a code never changes its meaning, and a response gains fields but never loses one. A code that is withdrawn is never used again for something else. New codes can appear in any release.

This page lists every code the current release can answer with, grouped by the first segment of the code.

Validation of configuration objects ​

CodeDefault textParameters
model.acme.allowedDirectory.invalidan allowed certificate authority must be an absolute https URL: {url}url
model.acme.directoryUrl.invalidthe directory URL must be an absolute https URL
model.acme.directoryUrl.notAllowedthis certificate authority is not on the list of allowed directories; a SuperAdmin can add it in Global Configuration
model.acme.eab.incompleteenter both the external account key identifier and the HMAC key, or neither
model.acme.eab.macKeyInvalidthe external account HMAC key is not valid base64url
model.acme.eab.notAllowedexternal account binding is only accepted for an allowed custom certificate authority
model.acme.email.invalidthe account email is not a valid address
model.acme.hostNames.invalidnot a valid host name: {name}name
model.acme.hostNames.ipLiteralan IP address cannot be certified, use a DNS name: {name}name
model.acme.hostNames.requiredno host name to certify: set one on a binding of this scope, or add an additional host name
model.acme.hostNames.reservedthis name is reserved for the cluster: {name}name
model.acme.hostNames.tooManyat most 100 additional host names
model.acme.hostNames.wildcardwildcard names are not supported: {name}name
model.acme.keyType.invalidunknown key type
model.acme.port443NotAcknowledgedacknowledge that port 443 will be used for certificate validations to enable automatic certificates
model.acme.profile.invalidthe certificate profile name is not valid
model.acme.responder.bindIpInvalidthe responder bind address is not a valid IP address
model.acme.tosRequiredagree to the terms of service of the certificate authority to enable automatic certificates
model.authServer.delete.inUseByUserscannot delete server that's in use by one or more UsersserverType
model.automationToken.allowList.invalidThe allow list contains an entry that is not an IP address or a network
model.automationToken.expiresAt.pastThe token expiry must be after its creation
model.automationToken.expiresAt.requiredThe token must have an expiry date
model.automationToken.expiresAt.tooFarThe token expiry exceeds the maximum lifetime of {maxDays} daysmaxDays
model.automationToken.name.requiredThe token name cannot be empty
model.automationToken.name.tooLongThe token name cannot exceed 64 characters
model.automationToken.owner.requiredThe token must have an owner
model.automationToken.secret.requiredThe token secret hash cannot be empty
model.automationToken.vsite.requiredAdministrator tokens require a virtual site
model.automationTokenPolicy.lifetime.invalidToken lifetimes must be between 1 and {maxDays} days, and the default cannot exceed the maximummaxDays
model.automationTokenPolicy.retention.invalidToken retention must be between 1 and 3650 days
model.certificate.delete.lastNodeCertificateat least one node certificate must exist
model.certificate.delete.lastVirtualSiteCertificateat least one certificate must exist
model.certificate.parse.invalidTlsCertificatecould not parse the provided data as TLS certificate
model.csr.save.notGeneratedCertificate signing request must be generated before saving
model.csr.uri.invalidinvalid URI: %suri
model.eventHandler.script.notFoundScript ID %s, not found in DBscriptId
model.eventHandler.script.requiredScript is required
model.ldapConfig.test.noServerUrlsno LDAP server URLs configured
model.license.atRestEncryption.notAllowedyour license does not allow at-rest encryption
model.license.cloudVfs.notAllowedyour license does not allow cloud VFS backends (SFTP, S3, Azure, GCP); upgrade to Professional or above
model.license.concurrentConnections.limitBasicyour license only allows 100 concurrent connections
model.license.eventHandlers.notAllowedyour license does not allow event handlers
model.license.highAvailability.nodeLimitReachedyour license has reached the maximum number of HA nodes allowed
model.license.highAvailability.notAllowedyour license does not allow high availability
model.license.invalidno valid license
model.license.ldapGroups.notAllowedyour license does not allow LDAP groups
model.license.ldapUsers.notAllowedyour license does not allow LDAP users
model.license.oidcAdminAuth.notAllowedyour license does not allow OIDC authentication for administrators
model.license.oidcSso.notAllowedyour license does not allow OIDC SSO
model.license.reporting.notAllowedyour license does not allow reporting
model.license.scripting.notAllowedyour license does not allow the scripting engine
model.license.user.limitBasicyour license only allows 100 users
model.license.virtualSite.addInvalidLicenseno valid license, you cannot add a virtual site
model.license.virtualSite.limitBasicyour license only allow one virtual site
model.license.virtualSite.limitProfessionalyour license only allow three virtual sites
model.license.webClientSharing.notAllowedyour license does not include WebClient sharing
model.node.privateKey.invalidPemfailed to parse PEM block containing the key
model.node.save.emptyIdcannot save a node with an empty ID
model.nodeSync.delete.selfcannot delete self node
model.passkey.host.notEligiblePasskeys cannot be used when this site is opened by IP address or by a short host name. Open it using its full DNS name, for example files.example.com, and try again.
model.password.minLengthThe password minimum length must be: %vminLength
model.password.requireLowercaseThe password must contain at least one lowercase character
model.password.requireNumberThe password must contain at least one number
model.password.requireSpecialThe password must contain at least one special character
model.password.requireUppercaseThe password must contain at least one uppercase character
model.script.delete.referencedBySiteConfigunable to delete this script, it is referenced in site configuration
model.script.delete.referencedByUserConfigunable to delete this script, it is referenced in configuration for user %#vuserId
model.secret.redactedSaveBlockedcannot save a redacted %ssecretName
model.srvConfig.sshHostKeys.createFailedcould not create any SSH-2 host keys
model.ssoProvider.delete.emptyIdcannot delete an SSO provider with an empty ID
model.ssoProvider.delete.inUseByAccountscannot delete an SSO provider that is in use by one or more %s accountsaccountType
model.superAdmin.delete.lastSuperAdminat least a Super Admin musts exists
model.updatePolicy.grace.invalidthe Apply now grace period must be zero or more seconds
model.updatePolicy.window.invalidenter both window times as HH:MM, or leave both blank
model.user.homeVfs.notFoundHome VFS ID %s not found in DBvfsId
model.user.ldapServer.notFoundLDAPServer ID %s not found in DBldapServerId
model.user.samlIdp.notFoundSAMLServer ID %s not found in DBsamlIdpId
model.user.ssoProvider.notFoundSSO provider ID %s not found in DBssoProviderId
model.user.virtualFolderVfs.notFoundVirtual folder %s not found in DBvfsId
model.userAppPassword.secretHash.plainTextuser app password secret hash cannot be plain text
model.vfs.delete.inUseAsVirtualFoldercannot delete VFS that's in use by one or more Users as VirtualFolder
model.vfs.delete.inUseByUserscannot delete VFS that's in use by one or more Users
model.vfs.encryptionImmutableat rest encryption settings cannot be changed after a VFS has been created

Notifications ​

CodeDefault textParameters
notification.automationToken.expiringBodyThe automation token {name} owned by {owner} expires in {days} daysname, owner, days
notification.automationToken.expiringTitleAutomation token expiring

Management API (SuperAdmin and Admin) ​

CodeDefault textParameters
webrest.acme.certManagedDeleteRefusedThis certificate is managed automatically. Disable automatic certificates first; the certificate then stays as a normal certificate and can be deleted.
webrest.acme.clusterNotReadyA cluster node runs a version that cannot answer certificate validations. Update every node to 8.7.0 or later before enabling automatic certificates.
webrest.acme.configSavedAutomatic certificate settings saved
webrest.acme.directoryFetchFailedThe certificate authority directory at {url} could not be read: {error}url, error
webrest.acme.directoryNotAllowedThis certificate authority is not on the list of allowed directories; a SuperAdmin can add it in Global Configuration
webrest.acme.directoryUrlInvalidThe directory URL must be an absolute https URL
webrest.acme.migration.bodyThe old Let's Encrypt setting of the console binding was retired. The host names of the service binding are covered by the console's automatic certificate, which stays off until you review and enable it on the Certificates page. The certificates it had obtained were imported as ordinary certificates.
webrest.acme.migration.titleLet's Encrypt on the console binding was replaced by Automatic certificates
webrest.acme.notReadyThe readiness check found something that would keep the certificate authority from validating. Fix the items marked as blocking, then check again.
webrest.acme.notif.expiring.bodyEvery renewal attempt since the renewal window opened has failed. {error} {remedy} The certificate expires on {notAfter}; after that clients see certificate errors.error, remedy, notAfter
webrest.acme.notif.expiring.titleAutomatic certificate for {scope} expires in {daysLeft} days and renewal keeps failingscope, daysLeft
webrest.acme.notif.failed.body{error} {remedy} The certificate in use is valid until {notAfter}; the next attempt runs at {nextAttempt}.error, remedy, notAfter, nextAttempt
webrest.acme.notif.failed.titleAutomatic certificate for {scope} could not be obtainedscope
webrest.acme.notif.issued.bodyA certificate for {names} was issued by {issuer} and installed. It is valid until {notAfter}; renewal is automatic.names, issuer, notAfter
webrest.acme.notif.issued.titleAutomatic certificate issued for {scope}scope
webrest.acme.notif.recovered.bodyThe renewal succeeded. The new certificate is valid until {notAfter}.notAfter
webrest.acme.notif.recovered.titleAutomatic certificate for {scope} renewed after earlier failuresscope
webrest.acme.notif.responder.body{reason}. Certificate authority validations that reach this node fail until this is fixed. See Global Configuration, Automatic certificates.reason
webrest.acme.notif.responder.titleThe certificate responder cannot answer on port 443 on node {node}node
webrest.acme.refusal.busyAn order, a trial or a self check is already running. Wait for it to finish.
webrest.acme.refusal.coordinatorUnreachableNode {node} coordinates automatic certificates and is not answering. Try again in a moment.node
webrest.acme.refusal.disabledAutomatic certificates are switched off for this scope. Enable and save first.
webrest.acme.refusal.noHostNamesThere is no host name to certify. Set one on a binding of this scope or add an additional host name, then save.
webrest.acme.refusal.throttledA forced order ran recently. Try again in {retryAfter}.retryAfter
webrest.acme.refusal.waitingForNodeNode {node} hosts this site and is offline; the certificate authority must be able to reach every node.node
webrest.acme.renewAcceptedCertificate renewal started
webrest.acme.testAcceptedTest started
webrest.acme.warn.noStagingTrialThe trial against the Let's Encrypt staging environment is switched off. A misconfiguration will count against the production rate limits.
webrest.acme.warn.reissueThe host names, the certificate authority or the key type changed, so a new certificate will be requested. Let's Encrypt allows five certificates for the same set of names per week.
webrest.acme.warn.selfCheckOffThe self check is switched off. Reachability problems will only be discovered when the certificate authority fails.
webrest.admin.createdAdmin created
webrest.admin.deletedAdmin deleted
webrest.admin.profileUpdatedAdmin profile updated
webrest.appPassword.userMismatchApp password does not belong to this user
webrest.auth.automationNotLicensedThe license does not include automation
webrest.auth.automationTokenExpiredThe automation token has expired
webrest.auth.automationTokenOwnerDisabledThe account that owns this automation token cannot sign in
webrest.auth.automationTokenRejectedThe automation token was not accepted
webrest.auth.automationTokenRevokedThe automation token has been revoked
webrest.auth.automationTokensDisabledAutomation tokens are disabled on this server
webrest.auth.loginForbiddenYou are not allowed to login
webrest.auth.sourceNotAllowedThis address is not allowed to use this credential
webrest.auth.ssoAccountRefusedSingle sign on did not produce a usable account
webrest.auth.tokenAudienceMismatchThe authentication token was issued to a different address
webrest.auth.tokenExpiredThe authentication token has expired
webrest.auth.tokenInvalidThe authentication token is not valid
webrest.auth.tokenMissingAuthentication required
webrest.auth.tokenRevokedThe authentication token has been revoked
webrest.auth.unauthorizedUnauthorized
webrest.automationToken.createdAutomation token created
webrest.automationToken.revokedAutomation token revoked
webrest.automationToken.updatedAutomation token updated
webrest.certificate.addedCertificate added
webrest.certificate.createdCertificate created
webrest.certificate.deletedCertificate deleted
webrest.certificate.updatedCertificate updated
webrest.config.savedConfiguration saved
webrest.config.updatedConfiguration updated
webrest.csr.createdCSR created
webrest.csr.deletedCSR deleted
webrest.dryRun.completedDry run completed; nothing was persisted
webrest.ha.nodeIdRequirednode ID is required
webrest.ha.nodeNotFoundnode not found
webrest.ha.notEnabledHA is not enabled
webrest.login.banner.acmeRenewalFailingThe automatic certificate for {names} expires on {validTo} ({daysLeft}) and renewal keeps failing: {error}. Open the Certificates page ({certsUrl}) to see the remedy.names, validTo, daysLeft, error, certsUrl
webrest.login.banner.licenseExpiringThis license is valid until {validTo} ({daysLeft}). When it expires, the virtual sites on this server stop until a valid license is activated. To keep using Syncplify Server! after that date, purchase a license, or contact Syncplify if you need more time.validTo, daysLeft
webrest.login.banner.licenseUnreadableAn error occurred while trying to read the license file, please contact support
webrest.login.banner.maintenanceExpiredThe maintenance plan on this license expired on {validTo}. This server cannot install updates and upgrades and is not entitled to support until it is extended in the Syncplify Customer Portal.validTo
webrest.login.banner.maintenanceExpiringThe maintenance plan on this license expires on {validTo} ({daysLeft}). Without it this server cannot install updates and upgrades and is not entitled to support. Log into the Syncplify Customer Portal to extend it.validTo, daysLeft
webrest.login.banner.noLicenseThis server has no license yet. Activate the license you purchased, or request a trial, on the License page ({licenseUrl}); the virtual sites start as soon as it is active.licenseUrl
webrest.login.banner.noLicenseAdminThis server has no license yet. A SuperAdmin must activate one before the virtual sites can start.
webrest.login.banner.trialThis TRIAL license expires on {validTo}. If you are happy with Syncplify Server!, consider buying a full license to keep using it.validTo
webrest.login.banner.trialUpdateVersion {version} is available and a valid trial is eligible to install it: open the Updates page ({updatesUrl}). This TRIAL license expires on {validTo}; if you are happy with Syncplify Server!, consider buying a full license.version, updatesUrl, validTo
webrest.login.banner.updateEligibleVersion {version} is available; this server runs {running}. Open the Updates page ({updatesUrl}) to apply it, or let the update policy apply it when the server is idle.version, running, updatesUrl
webrest.login.banner.updateEligibleExpiringVersion {version} is available; this server runs {running}. Your maintenance plan expires on {validTo} ({daysLeft}): apply the update from the Updates page ({updatesUrl}) while you are still covered.version, running, validTo, daysLeft, updatesUrl
webrest.login.banner.updateFailedThe last update on node {node} did not complete: {outcome}. See the Updates page ({updatesUrl}).node, outcome, updatesUrl
webrest.login.banner.updateGatedVersion {version} is available, but this license is not eligible to install it. This server runs {running} ({reason}). Software that is not up to date may be vulnerable, because it is not running the latest security patches. Log into the Syncplify Customer Portal and extend the maintenance plan on license code {licenseCode}, so this installation becomes eligible to install updates and upgrades.version, running, reason, licenseCode
webrest.login.banner.updateGatedAdminVersion {version} is available, but this license is not eligible to install it. Software that is not up to date may be vulnerable, because it is not running the latest security patches. Your SuperAdmin must log into the Syncplify Customer Portal and extend the maintenance plan on this license so the update can be installed. Release notes ({updatesUrl}).version, updatesUrl
webrest.login.banner.updateInProgressNode {node} is applying version {version} right now. Nodes update one at a time; follow it on the Updates page ({updatesUrl}).node, version, updatesUrl
webrest.login.banner.updateUnverifiableVersion {version} is available; this server runs {running}. The Syncplify licensing service cannot be reached from this server, so the maintenance standing could not be verified: automatic updates will not run, and a manual update asks you to accept responsibility on the Updates page ({updatesUrl}).version, running, updatesUrl
webrest.login.licenseExpiredThe license on this server expired on {validTo}. Admins can log in again as soon as a SuperAdmin activates a valid license.validTo
webrest.login.licenseInvalidThis server has no valid license. Admins can log in as soon as a SuperAdmin activates one.
webrest.mfa.qrCodeNotFoundqr code not found
webrest.node.updatedNode updated
webrest.notification.markedReadNotification marked as read
webrest.notifications.markedReadNotifications marked as read
webrest.openapi.disabledThe OpenAPI specification is not served on this server
webrest.otp.badBad OTP
webrest.otp.headerMissingRequired X-OTP header not found
webrest.otp.invalidOrExpiredInvalid or expired OTP
webrest.otp.secretDecodeFailedCould not decode authenticator secret
webrest.password.updatedPassword updated
webrest.perm.forbiddenYou have no permission to perform this action
webrest.perm.temporaryPasswordChange the temporary password before using the API
webrest.request.badRequestBad request
webrest.request.dryRunNotSupportedThis operation does not support a dry run
webrest.request.idempotencyInFlightA request with the same Idempotency-Key is still in progress
webrest.request.idempotencyKeyInvalidThe Idempotency-Key header is not valid
webrest.request.idempotencyKeyMismatchThe Idempotency-Key was already used with a different request
webrest.request.ifMatchMalformedThe If-Match header is malformed
webrest.request.ifMatchNotSupportedThe If-Match header is not supported on this route
webrest.request.invalidBodyinvalid request body
webrest.request.invalidOnlyLastInvalid only_last parameter
webrest.request.invalidSearchParamsInvalid search parameters
webrest.request.preconditionFailedThe resource changed since it was read
webrest.resource.conflictA resource with the same identifier already exists
webrest.resource.notFoundNot found
webrest.response.okOK
webrest.samlIdp.createdSAML2.0 IdP created
webrest.samlIdp.deletedSAML2.0 IdP deleted
webrest.samlIdp.updatedSAML2.0 IdP updated
webrest.script.createdScript created
webrest.script.deletedScript deleted
webrest.script.updatedScript updated
webrest.secret.deletedSecret deleted
webrest.secret.nameRequiredsecret name is required
webrest.secret.storedSecret stored
webrest.server.internalErrorInternal server error
webrest.session.terminatedSession terminated
webrest.sessions.terminatedSessions terminated
webrest.setup.invalidPasswordinvalid password
webrest.sshHostKey.createdSSH host key created
webrest.sshHostKey.deletedSSH host key deleted
webrest.ssoProvider.deletedSSO provider deleted
webrest.superAdmin.createdSuper Admin created
webrest.superAdmin.deletedSuper Admin deleted
webrest.superAdmin.profileUpdatedSuperAdmin profile updated
webrest.token.adminsMayNotCreateAdministrators may not create automation tokens on this server
webrest.token.expiryRequiredAn expiry date is required
webrest.token.lifetimeExceedsMaxThe token lifetime cannot exceed {maxDays} daysmaxDays
webrest.token.permissionsExceedOwnerThe token permissions exceed those of its owner
webrest.token.readOnlyThis automation token is read only
webrest.token.routeForbiddenThis route is not available to automation tokens
webrest.token.serviceActionsRequiredThis action requires the service actions scope
webrest.update.acceptedUpdate accepted. The node is draining and the update will be applied.
webrest.update.acknowledgedThe outcome of the last update was acknowledged and no longer asks for attention.
webrest.update.busyAn update is already in progress on node {node}.node
webrest.update.canceledThe waiting update was canceled and the node accepts new connections again.
webrest.update.checkedRelease channel checked.
webrest.update.clusterAcceptedCluster update started. Nodes update one at a time.
webrest.update.clusterCanceledThe cluster update was canceled. Every node accepts new connections again.
webrest.update.consentRequiredThe maintenance standing could not be verified. Apply by hand with explicit consent, or try again when the licensing service is reachable.
webrest.update.containerThis node runs in a container and never updates itself. Deploy a newer image.
webrest.update.devBuildThis is a development build; it checks the release channel only when asked.
webrest.update.fetchFailedThe release could not be downloaded or verified: {error}error
webrest.update.ineligibleThis installation is not eligible to install updates: {reason}. Extend the maintenance plan in the Syncplify Customer Portal at https://syngo.to/cc.reason
webrest.update.leaseHeldNode {node} holds the update lease for version {version}. Nodes update one at a time.node, version
webrest.update.noChangesNothing to update
webrest.update.noReleaseNo newer release is available for this platform.
webrest.update.nodeNotFoundNode {node} is not a member of this cluster.node
webrest.update.nodeOfflineNode {node} is offline and cannot be updated from here.node
webrest.update.notClusteredThis server is not part of a cluster.
webrest.update.nothingToAcknowledgeThere is no failed or rolled back update to acknowledge.
webrest.update.nothingToApplyThis node already runs the current version.
webrest.update.nothingToCancelNo update was waiting.
webrest.update.notif.available.bodyVersion {version} was published on {published}. This installation runs {running} and is eligible to install it. Open the SuperAdmin Updates page to apply it, or let the update policy apply it when the server is idle. Release notes: {relNotesUrl}version, published, running, relNotesUrl
webrest.update.notif.available.titleUpdate available: Syncplify Server! {version}version, published, running, relNotesUrl
webrest.update.notif.availableGated.bodyVersion {version} was published on {published}. This installation runs {running} and is not eligible to install it: {reason}. Software that is not up to date may be vulnerable, because it is not running the latest security patches. Log into the Syncplify Customer Portal at https://syngo.to/cc and extend the maintenance plan on license code {licenseCode}, so this installation becomes eligible to install updates and upgrades. Release notes: {relNotesUrl}version, published, running, reason, licenseCode, relNotesUrl
webrest.update.notif.availableGated.titleUpdate available, maintenance plan required: Syncplify Server! {version}version, published, running, reason, licenseCode, relNotesUrl
webrest.update.notif.availableUnverifiable.bodyVersion {version} was published on {published}. This installation runs {running}. The Syncplify licensing service cannot be reached from this server, so the maintenance standing could not be verified: automatic updates will not run, and a manual update asks a SuperAdmin to accept responsibility on the Updates page.version, published, running
webrest.update.notif.availableUnverifiable.titleUpdate available, standing not verified: Syncplify Server! {version}version, published, running
webrest.update.notif.checkFailing.body{error}. Check outbound HTTPS from this node to the release channel.hours, error
webrest.update.notif.checkFailing.titleThe release channel could not be read for {hours} hourshours, error
webrest.update.notif.done.bodyThe health check passed. The previous version {from} is kept in the rollback slot.node, version, from
webrest.update.notif.done.titleNode {node} updated to {version}node, version, from
webrest.update.notif.failed.body{error}. Nothing was changed on the node.version, node, error
webrest.update.notif.failed.titleUpdate to {version} failed on node {node}version, node, error
webrest.update.notif.failedNoRollback.bodyThe health check failed: {error}. The node was left on the new version, because the SyngoDB data layout changed and restoring the previous binaries would be unsafe. A pre update backup is in the data directory. Contact Syncplify support before taking any further action.version, node, error
webrest.update.notif.failedNoRollback.titleUpdate to {version} failed on node {node}, manual attention requiredversion, node, error
webrest.update.notif.launchFailed.bodyThe update executor did not start: {error}. The node accepts new connections again and nothing was changed.version, node, error
webrest.update.notif.launchFailed.titleUpdate to {version} could not start on node {node}version, node, error
webrest.update.notif.passFinished.bodyAll {count} nodes run {version}.version, count
webrest.update.notif.passFinished.titleCluster update to {version} finishedversion, count
webrest.update.notif.passStarted.bodyNodes update one at a time in this order: {nodes}.version, nodes
webrest.update.notif.passStarted.titleCluster update to {version} startedversion, nodes
webrest.update.notif.passStopped.body{reason}. The remaining nodes were not touched: {remaining}.version, node, reason, remaining
webrest.update.notif.passStopped.titleCluster update to {version} stopped at node {node}version, node, reason, remaining
webrest.update.notif.pausedUnverifiable.bodyThe Syncplify licensing service cannot be reached from this server. Automatic updates resume once it can be reached; a SuperAdmin can apply by hand from the Updates page.version
webrest.update.notif.pausedUnverifiable.titleAutomatic update to {version} paused: maintenance standing not verifiedversion
webrest.update.notif.postponedOffline.bodyNode {node} is offline, so the update policy will not proceed. Bring it back online, or remove the dead node first from the Cluster page.version, node
webrest.update.notif.postponedOffline.titleAutomatic update to {version} postponed: cluster member offlineversion, node
webrest.update.notif.rolledBack.bodyThe health check failed: {error}. The Web/REST, worker and SyngoDB binaries were restored to {from} as a set and the node is running again on the previous version.version, node, error, from
webrest.update.notif.rolledBack.titleUpdate to {version} rolled back on node {node}version, node, error, from
webrest.update.notif.staged.bodyThe release was downloaded and verified. The node is draining and the update applies at its next idle moment{window}.version, node, window
webrest.update.notif.staged.titleUpdate to {version} staged on node {node}version, node, window
webrest.update.notif.started.bodyThe node was drained ({terminated} sessions were terminated after the grace period) and its Web/REST, worker and SyngoDB services are restarting. The console on this node is unreachable until the health check passes.version, node, terminated
webrest.update.notif.started.titleUpdate to {version} started on node {node}version, node, terminated
webrest.update.passClearedThe halted cluster update was cleared.
webrest.update.passHaltedThe cluster update is halted at node {node}: {reason}. Clear the halted pass after fixing the node.node, reason
webrest.update.passRunningA cluster update pass is running. Per node actions are available again once it finishes.
webrest.update.peersOfflineCluster members are offline: {nodes}. Remove the dead node first, or acknowledge the offline members for a per node update.nodes
webrest.update.protocolChangeThis release changes the cluster protocol and must be installed with the setup program on every node.
webrest.update.schemaTooLowEvery cluster member must run version 8.4.0 or newer before the cluster can update itself. Update the remaining nodes with the setup program first.
webrest.update.stagedUpdate staged. The node is draining and the update applies at its next idle moment.
webrest.update.stagedMissingThe staged release is no longer on disk; check for updates again.
webrest.user.createdUser profile created
webrest.user.deletedUser deleted
webrest.user.statsNotFoundUser stats not found
webrest.user.updatedUser updated
webrest.vfs.createdVFS created
webrest.vfs.deletedVFS deleted
webrest.vfs.updatedVFS updated
webrest.vsite.createdVirtual site added
webrest.vsite.deletedvsite deleted
webrest.vsite.startedvsite started
webrest.vsite.stoppedvsite stopped
webrest.vsite.updatedVirtual site updated

WebClient API ​

CodeDefault textParameters
wrk.auth.headerMissingauthorization header not found
wrk.auth.missingTokenmissing JWT token
wrk.auth.sessionExpiredis your session expired?
wrk.auth.sessionMissingUsersession without a user, cannot continue
wrk.auth.tokenClaimsParseFailedcould not parse JWT claims
wrk.auth.tokenParseFailedcould not parse JWT
wrk.auth.unauthorizedNo authorization token or invalid credentials
wrk.authenticator.secretRequiredauthenticator secret is required
wrk.authenticator.settingsChangedauthenticator settings changed
wrk.authenticator.typeInvalidinvalid authenticator type
wrk.file.createDirectoryFailedcould not create directory
wrk.file.invalidFilenameinvalid or blank filename
wrk.file.metadataUnavailablefile metadata not available
wrk.file.missingDestinationPathmissing destination path
wrk.file.missingPathmissing path
wrk.file.thumbnailNotFilecannot create a thumbnail of something that is not a file
wrk.file.thumbnailUnsupportedcannot create a thumbnail, file format unknown or not supported
wrk.file.uploadedfile uploaded
wrk.files.uploadedfile(s) uploaded
wrk.files.uploadedWithErrorsfile(s) uploaded with errors
wrk.jwt.refreshGenerateFailedfailed to generate new JWT
wrk.jwt.refreshInvalidSessionTypeinvalid session type (it should be httpSession)
wrk.jwt.refreshNoSessionJWT refresh failed: no session found
wrk.jwt.refreshNotAllowedrefreshing JWT is not allowed by configuration
wrk.jwt.refreshRevokeFailedfailed to revoke old JWT
wrk.jwt.refreshTooEarlyJWT refresh not allowed yet (it will be available in %d seconds)seconds
wrk.jwt.refreshTooManyJWT refresh not allowed anymore (max refreshes allowed: %d)maxRefreshes
wrk.jwt.secretMissingJWT secret not found in configuration, cannot continue
wrk.jwt.userLoadFailedfailed to re-verify user while refreshing JWT
wrk.jwt.userNoLongerAlloweduser no longer allowed to log in
wrk.license.sharingForbiddencurrent license does not include WebClient! sharing functions
wrk.object.createdobject created
wrk.object.deletedobject deleted
wrk.object.renamedobject moved/renamed
wrk.password.changedpassword changed
wrk.password.confirmMismatchnew password must be typed twice identically
wrk.permission.forbiddenyou cannot perform this operation
wrk.profile.emailChangedemail changed
wrk.profile.pictureChangedpicture changed
wrk.profile.preferredLanguageChangedpreferred language changed
wrk.r2fs.notif.storageDegraded.bodyR2FS! node {connector} (version {version}) keeps serving virtual file system {vfs} ({serverVfs}) but its last storage probe failed. Phase: {phase}. Reason: {reason}. The link is kept and the node probes again every minute; operations may fail until the storage answers.vfs, connector, version, serverVfs, phase, reason
wrk.r2fs.notif.storageDegraded.titleR2FS! storage degraded: {vfs}vfs, connector, version, serverVfs, phase, reason
wrk.r2fs.notif.storageRestored.bodyR2FS! node {connector} reports the storage behind virtual file system {vfs} ({serverVfs}) reachable again after {duration}.vfs, connector, serverVfs, duration
wrk.r2fs.notif.storageRestored.titleR2FS! storage reachable again: {vfs}vfs, connector, serverVfs, duration
wrk.r2fs.notif.storageWithheld.bodyR2FS! node {connector} (version {version}) cannot reach the storage behind virtual file system {vfs} ({serverVfs}) and is not presenting it. Phase: {phase}. Reason: {reason}. No other R2FS! node serves it on server node {node} right now, so its users are told their storage is unreachable until the storage answers. The R2FS! node keeps retrying on its own; next attempt at {nextRetry}.vfs, connector, version, serverVfs, phase, reason, node, nextRetry
wrk.r2fs.notif.storageWithheld.titleR2FS! storage unreachable: {vfs}vfs, connector, version, serverVfs, phase, reason, node, nextRetry
wrk.r2fs.notif.storageWithheldRedundant.bodyR2FS! node {connector} (version {version}) cannot reach the storage behind virtual file system {vfs} ({serverVfs}) and is not presenting it. Phase: {phase}. Reason: {reason}. Other R2FS! nodes still serve it, so users are not affected, but redundancy is reduced until the storage answers; next attempt at {nextRetry}.vfs, connector, version, serverVfs, phase, reason, nextRetry
wrk.r2fs.notif.storageWithheldRedundant.titleR2FS! storage unreachable on one node: {vfs}vfs, connector, version, serverVfs, phase, reason, nextRetry
wrk.request.badListingParamsunprocessable limit/offset/order value(s)
wrk.request.badPayloadFormatbad payload format
wrk.resource.notFoundNot found
wrk.script.forbiddenaction forbidden by script
wrk.server.internalErrorInternal server error
wrk.share.deleteFailedfailed to delete share ID %s from databaseshareId
wrk.share.downloadPathForbiddenyou can only download the file that was shared with you
wrk.share.filenameMismatchskipping file [%s] because name doesn't match shared object namefilename
wrk.share.loadFailedfailed to load share ID %s from databaseshareId
wrk.share.missingIdmissing {share_id} in path
wrk.share.noLongerExiststhe shared object you're trying to access no longer exists
wrk.share.saveFailedfailed to save share-cfg to database
wrk.share.uploadRootRequiredwhen the shared object is a file, you can only upload a file with the same name and you cannot specify an upload path in the URL
wrk.share.zipSingleFileOnlyonly 1 file was shared with you, so you cannot zip and download multiple files
wrk.storage.unreachableyour storage is unreachable right now; please try again later or ask your server administrator
wrk.upload.destinationNotDirectorycannot upload files into a destination that is not a directory
wrk.upload.failedupload failed
wrk.upload.failedWithReasonupload failed: %sreason
wrk.user.passwordChangeForbiddenuser [%s] not allowed to change own passworduserId
wrk.user.sharingForbiddenuser profile not allowed to share files/folders via WebClient!
wrk.userType.emailChangeForbiddenusers of type [%s] cannot change their email via WebClient! UIuserType
wrk.userType.passwordChangeForbiddenusers of type [%s] cannot change their password via WebClient! UIuserType
wrk.userType.pictureChangeForbiddenusers of type [%s] cannot change their profile picture via WebClient! UIuserType