How to Read Error Codes
Each error code follows the format Category.ErrorName.
| Component | Description |
|---|---|
Category | The module or domain the error belongs to (e.g. License, User) |
ErrorName | A descriptive identifier for the specific error condition |
Placeholder Values
Some error messages contain placeholders enclosed in curly braces {}.
These are runtime values substituted by the server when the error occurs.
Example:
| Error Code | Message |
|---|---|
Device.NotFound | Device with ID {deviceId} not found. |
When this error is returned, {deviceId} is replaced with the actual device ID: Device with ID abc-123 not found.
Search Error Codes
Common
| Error Code | Message |
|---|---|
Common.AlreadyExists | {resource} with identifier '{identifier}' already exists. |
Common.NotFound | Resource '{resource}' not found |
Common.NotFoundWithKey | Resource '{resource}'({identifier}) not found |
CommonModelError.AllowedValuesError | The field {FieldName} must be one of the allowed values: {AllowedValues}. |
CommonModelError.Base64StringError | The field {FieldName} must be a valid Base64 string. |
CommonModelError.CompareError | The field {FieldName} must match the field {OtherProperty}. |
CommonModelError.CreditCardError | The field {FieldName} is not a valid credit card number. |
CommonModelError.DeniedValuesError | The field {FieldName} must not be one of the denied values: {DeniedValues}. |
CommonModelError.EmailError | The field {FieldName} is not a valid e-mail address. |
CommonModelError.EnumDataTypeError | The field {FieldName} must be a valid value of type {EnumType}. |
CommonModelError.FileExtensionsError | The field {FieldName} must have a file extension of {Extensions}. |
CommonModelError.JwtEmptyRole | The request token role is empty. |
CommonModelError.JwtParsingError | The request token cannot be parsing. |
CommonModelError.JwtRoleNotMatch | The request token expect get {expect} role but current role is not match. |
CommonModelError.JwtVerificationFailed | JWT verification failed. Please confirm your login status or whether the token is valid. |
CommonModelError.LengthError | The field {FieldName} must be a string or collection with a minimum length of {MinimumLength} and a maximum length of {MaximumLength}. |
CommonModelError.MaxLengthError | The field {FieldName} must be a string with a maximum length of {MaxLength}. |
CommonModelError.MinLengthError | The field {FieldName} must be a string with a minimum length of {MinLength}. |
CommonModelError.PhoneError | The field {FieldName} is not a valid phone number. |
CommonModelError.RangeError | The field {FieldName} must be between {Minimum} and {Maximum}. |
CommonModelError.RegularExpressionError | The field {FieldName} must match the regular expression '{Pattern}'. |
CommonModelError.RequiredError | The field {FieldName} is required. |
CommonModelError.ResourceNotFound | The resource you requested could not be found. |
CommonModelError.StringLengthError | The field {FieldName} must be a string with a minimum length of {MinimumLength} and a maximum length of {MaximumLength}. |
CommonModelError.UnExpectedError | System are facing some unexpected error. |
CommonModelError.UnknownValidationError | The field {FieldName} validation failed. |
CommonModelError.UrlError | The field {FieldName} is not a valid URL. |
Common.AccessTokenMissing | Access token is missing. |
Common.ApiFetchFail | Unable to process your request: {ReasonPhrase}. Please try again later |
Common.FormatError | Invalid data format |
Common.InvalidGuid | invalid Guid |
Common.InvalidGuidEmptyString | invalid Guid empty string |
Common.InvalidGuidNullValue | Invalid Guid null value |
Common.InvalidNaming | Invalid property naming. {details} |
Common.InvalidTimeInterval | Invalid start or end time. {details} |
Common.JsonSchemaFormatInvalidWithDetail | The provided json schema format is invalid: {details}. |
Common.MailFormat | Invalid email format |
Common.MailSendError | Failed to send email. Please try again later |
Common.PropertyFormatError | Invalid format for property '{propertyName}'. Expected format: {format} |
Common.PropertyRequire | The property '{propertyName}' is required. |
Common.RequestNotMatchUrlPath | Request does not match the URL path |
Common.Require | Require field |
Common.SettingFail | Required configuration '{propertyName}' is missing. Please contact support |
Common.UnknownError | An unexpected error occurred. Please try again or contact support |
AnalyticExpression
| Error Code | Message |
|---|---|
AnalyticExpression.AlreadyExists | Analytic expression with name '{name}' already exists. |
AnalyticExpression.BuiltInTypeIsReadOnly | Built-in type is read-only and cannot be modified. |
AnalyticExpression.JsonSchemaFormatInvalid | The provided json schema format is invalid: {details}. |
AnalyticExpression.NotFound | Analytic expression not found with ID {analyticExpressionId}. |
AnalyticExpression.SystemResourceIsReadOnly | System resource is read-only and cannot be modified. |
AnalyticModule
| Error Code | Message |
|---|---|
AnalyticModule.AlreadyExists | Analytic module with name '{name}' already exists. |
AnalyticModule.ConfigurationsFormatInvalid | The provided configurations don't match the JSON schema format: {details}. |
AnalyticModule.NotFound | Analytic module not found with ID {analyticModuleId}. |
AnalyticModule.SystemResourceIsReadOnly | System resource is read-only and cannot be modified. |
Application
| Error Code | Message |
|---|---|
Application.AppNotExistOrNotReady | The application: {AppName} is not ready for installation, please contact the support. |
Application.NotFound | Application not found. |
Application.UniqueNameInvalid | Application unique name is invalid. |
Application.UrlInvalid | Application URL is invalid. |
Batch
| Error Code | Message |
|---|---|
Batch.ActionLogsNotFound | No batch action logs found for batch ID {batchId}. |
Batch.ActionNotFound | No actions could be executed for batch {actionId}. |
Batch.BatchIdOrgIdNotFound | Batch with ID {batchId} and Organization ID {orgId} does not exist. |
Batch.BatchNotFoundUnderOrg | Batch with ID {batchId} under Org {orgId} does not exist. |
Batch.CronExpressionFormatInvalid | The provided 'cronExpression' value does not follow a valid CRON format. |
Batch.DeleteFailed | Failed to delete batch {errorMessage} |
Batch.FetchFailed | unexpected error while fetching batch {errorMessage} |
Batch.GetFailed | Unexpected error while getting batchs: {errorMessage} |
Batch.InvalidDeleteEnabledBatch | Cannot delete an enabled batch. Please disable it (IsEnabled = false) before deletion. |
Batch.InvalidSortingExpression | Sorting {sorting} caused an error: {errorMessage} |
Batch.InvalidTriggeredByValue | Invalid triggeredBy value: {triggeredBy}. Allowed values: Manual, Scheduler. |
Batch.JobSchedulerNotFound | JobScheduler related to BatchId {batchId} does not exist. |
Batch.NameExists | A Batch with the name {batchName} already exists under Org {orgId}. Please use a different name. |
Batch.NameLengthExceeded | The provided 'name' exceeds the maximum allowed length of 100 characters. |
Batch.NotFound | Batch with ID {batchId} does not exist. |
Batch.UnitOfWorkNotAvailable | The current UnitOfWork is not available. Cannot save batch. |
Business
| Error Code | Message |
|---|---|
Business.EndTimeFormatError | end time format error |
Business.EndTimeNotQualified | end time error |
Business.JobTypeNotFound | job type not found |
Business.MaxResultCountMustBeGreaterThanSkipCount | maxResultCount must be greater than skipCount |
Business.MaxResultCountMustBeGreaterThanZero | maxResultCount must be greater than zero |
Business.NameExistError | task name is exist |
Business.NoScheduleExists | No schedule has been created |
Business.PeriodFormatError | period format is wrong, Daily, Weekly or Monthly |
Business.ScheduleCreateFailed | create summary report schedule failed |
Business.SkipCountMustBeGreaterThanZero | skipCount must be greater than zero |
Business.StartAfterEnd | start time after than end time error |
Business.StartTimeFormatError | start time format error |
Business.SummaryReportScheduleIdNotFound | The task id {summaryReportScheduleId} doesn't exist |
Business.TimeZoneFormatError | time zone setting errort |
Business.UndefinedError | undefinded error |
Business.UpdateScheduleError | fail to update schedule |
Business.WrongDownloadFileFormatTypeError | wrong download file format type error |
ClaimsProvider
| Error Code | Message |
|---|---|
ClaimsProvider.CallerNotClaimsProvider | Caller is not a valid claims provider |
ClaimsProvider.CallFailed | Failed to call claims provider |
ClaimsProvider.EndpointNotConfigured | Claims provider endpoint not configured |
ClaimsProvider.HttpRequestFailed | Failed to connect to claims provider. |
ClaimsProvider.InvalidResponse | Claims provider returned an invalid response. |
ClaimsProvider.NetworkError | Network error when calling claims provider |
ClaimsProvider.NotFound | Claims provider not found |
ClaimsProvider.Timeout | Request timeout when calling claims provider |
ClaimsProvider.TokenAcquisitionFailed | Failed to acquire access token for claims provider |
Client
| Error Code | Message |
|---|---|
Client.DuplicateClientId | Client ID already exists |
Client.FailedToGenerateAlias | Failed to generate unique alias |
ContainerMgmt
| Error Code | Message |
|---|---|
ContainerMgmt.AwsEcrAccessKeyInvalid | Access key length must be exactly 20 characters. |
ContainerMgmt.AwsEcrCredentialsRequired | Access key, secret key, and region cannot be null, empty, or whitespace when authentication is enabled. |
ContainerMgmt.AwsEcrRegionInvalid | Invalid AWS region format. |
ContainerMgmt.AwsEcrSecretKeyInvalid | Access secret key length must be exactly 40 characters. |
ContainerMgmt.AzureAcrCredentialsRequired | Username and userPassword cannot be null, empty, or whitespace. |
ContainerMgmt.CreateStackFail | Failed to create stack. |
ContainerMgmt.CustomCredentialsRequired | Username and userPassword cannot be null, empty, or whitespace. |
ContainerMgmt.DockerHubAccessTokenInvalid | DockerHub access token must be at least 9 characters long. |
ContainerMgmt.DockerHubCredentialsRequired | Username and AccessToken cannot be null, empty, or whitespace. |
ContainerMgmt.DockerHubUsernameInvalid | Invalid DockerHub username format. It must be 4-30 lowercase letters or numbers. |
ContainerMgmt.EncryptionPlaintextRequired | Plaintext cannot be null or empty. |
ContainerMgmt.ErrorSendingStackActionCommand | Error sending stack action command to device {DeviceId} |
ContainerMgmt.InvalidSortDirection | Invalid sort direction: '{sortDirection}'. Use 'asc' or 'desc' |
ContainerMgmt.InvalidSortingFormat | Invalid sorting format: '{sorting}'. Expected format: 'PropertyName' or 'PropertyName asc/desc' |
ContainerMgmt.InvalidSortingProperty | Invalid sorting property: '{propertyName}'. Valid properties are: {validProperties} |
ContainerMgmt.RegistryNameExists | Registry with this name already exists |
ContainerMgmt.StackConfigNotFound | Stack configuration with ID {stackConfigId} not found |
ContainerMgmt.StackHasDeployments | Cannot delete stack because it has associated deployments |
ContainerMgmt.UnknownCredentialType | Unknown credential type for registry creation. |
CustomDevice
| Error Code | Message |
|---|---|
CustomDevice.AlreadyExists | Custom device with name '{name}' already exists. |
CustomDevice.BlueprintFormatInvalid | Custom device blueprint format is invalid. |
CustomDevice.BlueprintNotFound | Custom device blueprint not found. |
CustomDevice.DeviceProcessFailed | Custom device process failed: {details}. |
CustomDevice.DeviceStatusNotAllowed | Custom device status from {currentStatus} to {targetStatus} is not allowed. |
CustomDevice.NotFound | Custom device not found with ID {deviceId}. |
CustomDevice.SketchIncomplete | Custom device sketch is incomplete. |
CustomDeviceTemplate
| Error Code | Message |
|---|---|
CustomDeviceTemplate.AlreadyExists | Custom device template with name '{name}' already exists. |
CustomDeviceTemplate.BuiltInTypeIsReadOnly | Built-in type is read-only and cannot be modified. |
CustomDeviceTemplate.NotFound | Custom device template not found with ID {templateId}. |
CustomDeviceTemplate.SystemResourceIsReadOnly | System resource is read-only and cannot be modified. |
CustomDeviceTemplate.TemplateStageConflict | Custom device template is already in the {stage} stage. |
DataConnector
| Error Code | Message |
|---|---|
DataConnector.AlreadyExists | Data connector with name '{name}' and type '{type}' already exists. |
DataConnector.FileTypeOnlyAllowsDll | The data connector file type is invalid. Only .dll files are allowed. |
DataConnector.JsonSchemaFormatInvalid | The provided json schema format is invalid: {details}. |
DataConnector.NotFound | Data connector not found with ID {dataConnectorId}. |
DataConnector.SystemResourceIsReadOnly | System resource is read-only and cannot be modified. |
DataParser
| Error Code | Message |
|---|---|
DataParser.AlreadyExists | Data parser with name '{name}' already exists. |
DataParser.NotFound | Data parser not found with ID {dataParserId}. |
DataParser.SystemResourceIsReadOnly | System resource is read-only and cannot be modified. |
DataSource
| Error Code | Message |
|---|---|
DataSource.AlreadyExists | Data source with name '{name}' already exists. |
DataSource.ConfigurationsFormatInvalid | The provided configurations don't match the JSON schema format: {details}. |
DataSource.NotFound | Data source not found with ID {dataSourceId}. |
DataSource.SystemResourceIsReadOnly | System resource is read-only and cannot be modified. |
Device
| Error Code | Message |
|---|---|
Device.AlreadyLinked | device already linked to an organization. remove linkage before link this device to another organization. |
Device.BasicInfoNotFound | Basic info for device ID {deviceId} not found |
Device.DetailInfoNotFound | Detail info for device ID {deviceId} not found |
Device.DeviceBasicInformationNotFound | Device basic info with ID {deviceId} not found. |
Device.DeviceCustomInformationNotFound | Device custom info for device Id {deviceId} not found. |
Device.DeviceIdAlreadyExists | Device ID {deviceId} is already in use. Status is {entityStatus}. |
Device.DeviceNotAllowedToGetTelemetryWhenRegistered | Can't get telemetry config of device ID {deviceId}. Registered device is not allowed to get desired. Only Activated and Deactivated devices can get telemetry config |
Device.DeviceNotLinkedToOrganization | Can't get telemetry config of device ID {deviceId}. Device is not linked to any organization |
Device.DeviceOrganizationNotFound | Device ID {deviceId} is not linked to any organization |
Device.DeviceTaskLinkedToBatchCannotDelete | This task is linked to at least one batch and cannot be deleted. Please remove it from all batches first. |
Device.DeviceTaskNotFound | The device task with ID {taskId} does not exist. |
Device.ForbiddenUpdateStatus | This service cannot activate the device. To activate it, use the API at /api/v1/devices/{deviceId}/auth |
Device.GetTelemetryConfigError | Error getting device ID {deviceId} telemetry config |
Device.IllegalResourceId | Illegal resource ID format. Resource ID should be an uuid format |
Device.InvalidDeleteDeviceStatus | Device status {deviceStatus} is not allowed to delete |
Device.InvalidDeviceToGetTelemetryConfig | Registered device id {deviceId} can't get reported telemetry config |
Device.InvalidDeviceType | Device ID {deviceId} is not a physical device. Only physical devices can access telemetry config |
Device.InvalidHardwareModel | Invalid hwModel. HwModel can't be update as null value or empty string |
Device.InvalidId | Request device ID can not be null. |
Device.InvalidOrgId | OrgId can't be update as null value or empty string. To remove linked orgId use DELETE request /api/v1/orgs/<orgId>/devices/{deviceId} instead |
Device.InvalidOrgIdFormat | Invalid organization ID format |
Device.InvalidStatus | Status {status} is invalid |
Device.InvalidStatusOperateTelemetry | Cannot operate telemetry config for device ID {deviceId}. Only Activated and Deactivated devices are allowed to access telemetry config operations. |
Device.InvalidType | Device ID {deviceId} is not a {deviceType} device. This API only supports {deviceType} devices. |
Device.MismatchHardwareModel | HwModel is not the same as the original hw model. Mismatch hwModel is not acceptable to link device to organization. |
Device.NameAlreadyExists | A Task with the name {name} already exists under Org {OrgId}. Please use a different name. |
Device.NameRequired | The Name field is required |
Device.NotFound | Device with ID {deviceId} not found. |
Device.NotLoggedIn | Not logged in |
Device.NullResourceId | One of resource ID is null or empty string. All resource IDs can not be null or empty string |
Device.OrganizationNotFoundOrNoPermission | Organization not found or you do not have permission to access the specified organization. |
Device.OrgIdRequired | The OrgId field is required |
Device.SensorsIntervalOutOfRange | Telemetry interval for all sensors out of range. Interval must be between {minInterval} and {maxInterval} milliseconds |
Device.SortingIllegal | Sorting {inputSorting} illegal: fixedMessage |
Device.TaskDeleteFailed | Unexpected error while deleting device task: {errorMessage} |
Device.TaskDoesNotExist | The device task with ID {id} does not exist. |
Device.TaskMappingFailed | Failed to map Task entity |
Device.TaskNotFound | Task with ID {id} was not found. |
Device.TaskUpdateFailed | Unexpected error while updating device task |
Device.TelemetryConfigEmpty | Providing desired config is empty |
Device.UpdateTelemetryConfigFailed | Failed to update device ID {deviceId} telemetry config |
Invitation
| Error Code | Message |
|---|---|
Invitation.AccountConflict | Account already exists. |
Invitation.AccountMismatch | The account does not match the invitation. |
Invitation.InvitationAlreadyAccepted | Invitation has already been accepted. |
Invitation.InvitationAlreadyCancelled | Invitation has already been cancelled. |
Invitation.InvitationExpired | Invitation is expired. |
Invitation.NotFound | Invitation not found. |
Invitation.ResendForbidden | Cannot resend the invitation. |
Invitation.StatusInvalid | Invitation status is invalid. |
Ldap
| Error Code | Message |
|---|---|
Ldap.InvalidCredentials | LDAP credentials are invalid. |
Ldap.LdapCantEnableConflict | LDAP authentication cannot be enabled because another authentication method is currently active. |
Ldap.LdapConnectionTimeout | LDAP connection timed out. |
License
| Error Code | Message |
|---|---|
License.ActivateDateMustBeLessThan | Activate date must be less than {date}. |
License.AppConflict | App already exists. |
License.AppRequired | App is required |
License.Conflict | License already exists. |
License.ContentNameRequired | Content name is required |
License.ContentTypeInvalid | Content type must be a valid type. |
License.ContentValueInvalid | Content value must be 0 or greater. |
License.DepthExceedLimit | Depth exceeds the allowed limit {depth}. |
License.DuplicateAppWithDifferentExpirationDate | Duplicate app detected with different expiration date. |
License.EndorseToInvalid | Machine identification code is invalid. |
License.ExpireDateMustBeFuture | Expire date must be a future date. |
License.ExpiredDateMustBeGreaterThan | Expiration date must be later than {date}. |
License.ExpiredDateMustBeLessThan | Expiration date must be earlier than {date}. |
License.LicenseAlreadyAssignedToTenant | License is already assigned to the tenant. |
License.LicenseCannotActivateUnassigned | Cannot activate a license that is not assigned to you. |
License.LicenseCannotAllocateUnassigned | Cannot allocate a license that is not assigned to you. |
License.LicenseCannotDeactivateUnassigned | Cannot deactivate a license that is not assigned to you. |
License.LicenseExpired | License has expired. |
License.LicenseFileNotSupported | License file is not supported. |
License.LicenseItemInvalid | The license content is invalid. |
License.LicenseKeyInvalid | License key is invalid. |
License.LicenseNotAllowedDowngrade | License cannot be downgraded. |
License.LicenseNotAssignedToTenant | License has not been assigned to the tenant. |
License.LicenseNotDeletable | License cannot be deleted. |
License.LicensePublicKeyInvalid | License Public Key is invalid. |
License.LicenseTypeMismatch | License type is mismatched. |
License.LicenseUpdateDenied | License update denied. |
License.NotFound | License not found. |
License.PartNumberRequired | Part number is required |
License.QuantityInvalid | Quantity must be greater than 0. |
License.QuotaAllAssignedZero | At least one quota-type resource must have an assigned quantity greater than 0. |
License.ResourceAboveMaximum | The value of the resource {name}-{type} is above the maximum allowed. |
License.ResourceAssignedToChildrenNotFound | Resource {name}-{type} assigned to sub-tenants does not exist. |
License.ResourceBelowMinimum | The value of the resource {name}-{type} is below the minimum required. |
License.ResourceConflict | Resource {name}-{type} already exists. |
License.ResourceNotFound | Resource {name}-{type} not found. |
License.ResourcesRequired | Resources are required. |
License.SerialNumberConflict | Serial number already exists. |
License.SerialNumberRequired | Serial number is required |
License.UpdateDateMustBeGreaterThan | Update date must be greater than {date}. |
LoginSecurity
| Error Code | Message |
|---|---|
LoginSecurity.AccountLocked | Account is currently locked |
LoginSecurity.InvalidResourceAccessClaimFormat | The resource_access claim format is invalid |
LoginSecurity.LoginRequired | Please log in before accessing this resource. |
LoginSecurity.NoResourceAccessClaim | User has no resource_access claim |
LoginSecurity.NotificationFailed | Failed to send login failure notification. |
LoginSecurity.OrgIdNotFoundInResourceAccess | Org ID {orgId} not found in user's resource access. |
LoginSecurity.OrgNotFoundOrUnauthorized | Organization not found or you do not have permission to access it. |
LoginSecurity.OrgRoleNotFound | Role configuration not found for this organization. |
LoginSecurity.PasswordExpiredMustChange | Password has expired and must be changed |
LoginSecurity.ResourceAccessClaimFormatInvalid | The resource_access claim format is invalid. |
LoginSecurity.ResourceAccessClaimParseFailed | Unable to parse resource_access claim: {exMessage} |
LoginSecurity.RoleMismatch | Your role does not have permission to access this resource. |
LoginSecurity.TooManyFailedAttempts | Too many failed login attempts |
LoginSecurity.TooManyFailedDurationAttempts | Too many consecutive login attempts in a short period of time |
LoginSecurity.UnauthorizedAccess | You are not authorized to perform this action. |
LoginSecurity.UserNotLoggedIn | User is not logged in. |
Nats
| Error Code | Message |
|---|---|
Nats.NoResponseData | NATS No response data. |
Nats.NoResponser | No responder available for message service. Subject: {subject}, Details: {details} |
Nats.Timeout | NATS request timed out. Subject: {subject}, Details: {details} |
Notification
| Error Code | Message |
|---|---|
Notification.FieldLengthExceeded | Field length exceeded limit |
Notification.InvalidChannelConfig | Invalid channel configuration |
Notification.InvalidMessagePayload | Invalid message payload structure |
Notification.InvalidTemplateVariable | Invalid template variable syntax |
Notification.MissingTemplateVariable | Missing required template variable |
Notification.NoRecipientsSpecified | No recipients in message |
Notification.PluginConfigInvalid | Invalid plugin configuration |
Notification.PluginConnectionFailed | Plugin connection failed |
Notification.RecipientLimitExceeded | Too many recipients (max {maxNumber}) |
OAuth
| Error Code | Message |
|---|---|
OAuth.AccessTokenNotFound | Sign-in failed: no access token received. |
OAuth.CreateUserFailed | Failed to create user account. |
OAuth.Disabled | OAuth provider({ProviderName}) is disabled |
OAuth.DuplicateName | OAuth provider name already exists |
OAuth.EmailNotFoundInTenant | The email address from the sign-in provider is not associated with any user in this organization. |
OAuth.EmptyAccessToken | Sign-in failed: access token is empty. |
OAuth.ExchangeCookieFailed | Failed to establish session. Please try again. |
OAuth.ExchangeJwtFailed | Failed to exchange authentication token. |
OAuth.GenerateUrlFailed | Failed to generate authorization URL |
OAuth.GetProviderFailed | Failed to retrieve OAuth provider |
OAuth.GetProvidersFailed | Failed to retrieve OAuth providers |
OAuth.GetUserInfoFailed | Failed to retrieve user information during sign-in. |
OAuth.InvalidState | Sign-in request is invalid or has expired. Please try again. |
OAuth.InvalidTokenResponse | Received an invalid response during sign-in. Please try again. |
OAuth.InvalidUserInfoResponse | Received invalid user information during sign-in. |
OAuth.ParsingMailFail | Could not retrieve email address from the sign-in provider. |
OAuth.RefreshTokenError | Session has expired. Please sign in again. |
OAuth.TokenExchangeFailed | Sign-in failed. Please try again. |
OAuth.TokenGenerationFailed | Failed to complete sign-out. Please try again. |
Organization
| Error Code | Message |
|---|---|
Organization.CircularParentRelationshipNotAllowed | Circular parent relationship between organizations is not allowed. |
Organization.DeletePermissionDenied | You do not have permission to delete this organization. |
Organization.HasSubOrgs | Cannot delete an organization that contains sub-organizations. Please remove all sub-units first. |
Organization.IdPermissionDenied | Organization not found or you do not have permission to access the specified organization {orgId}. |
Organization.InvalidDepthGreaterThanOne | Depth must be greater than or equal to {depth}. |
Organization.InvalidDepthLessAndEqual | Depth must be less than or equal to {depth}. |
Organization.InvalidOrgId | Invalid organization ID format. |
Organization.NameAlreadyExists | Org name already exists |
Organization.ParentInvalid | The parent node of an organization cannot be itself |
Organization.PermissionDenied | You do not have permission to create a sub-organization under this organization. |
Organization.UserAddPermissionDenied | You do not have permission to add users to this organization. |
Organization.UserDeletePermissionDenied | You do not have permission to delete this user from the organization. |
Organization.UserDuplicate | The user is already a member of this organization. |
Organization.UserInOrgNotFound | OrgUser not found for OrgId:{orgId}, UserId:{userId} |
Organization.UserInvalidUserId | Depth must be greater than or equal to 1. |
Organization.UserLastAdminCannotBeDeleted | You cannot delete the last admin of this organization. |
Organization.UserLastAdminRoleCannotBeChanged | Cannot change the role of the last admin in the organization. At least one admin must remain. |
Organization.UserPermissionDenied | You do not have permission to view this user. |
Organization.UserUpdatePermissionDenied | You do not have permission to update users in this organization. |
Organization.UserUserIdEmpty | UserId cannot be null or empty. |
Password
| Error Code | Message |
|---|---|
Password.BannedPassword | Password is in the banned list |
Password.InvalidResetToken | Invalid or unrecognized reset token |
Password.MaximumLengthMismatch | Password maximum length is shorter than minimum length |
Password.MaxLength | Password is longer than maximum {maxlength} length |
Password.MinLength | Password is shorter than minimum {minlength} length |
Password.PasswordHistoryLimitTooLarge | Password history limit cannot exceed {maxvalue} |
Password.PasswordHistoryLimitTooSmall | Password history limit must be at least {minvalue} |
Password.PasswordReused | Password cannot be reused from password history |
Password.PolicyNotFound | Password policy not found |
Password.RequireDigit | Password must contain at least one digit |
Password.RequiredUniqueChars | Password must include required unique characters |
Password.RequireLowercase | Password must contain a lowercase letter |
Password.RequireNonAlphanumeric | Password must contain a special character |
Password.RequireRegexPattern | Password must match the required pattern |
Password.RequireRegexPatternFail | Password pattern check failed |
Password.RequireUppercase | Password must contain an uppercase letter |
Password.ResetTokenExistCantReset | Reset email already sent. Please check your inbox. |
PAT
| Error Code | Message |
|---|---|
PAT.ExpiredAtMustBeFutureDate | ExpiredAt must be a future date |
PAT.InvalidScope | Invalid scope provided |
PAT.NotFound | Personal Access Token with ID {patId} not found. |
PAT.ScopesCannotBeEmpty | Scopes cannot be empty |
PersonalClient
| Error Code | Message |
|---|---|
PersonalClient.AccessDenied | Access denied to this personal client |
PersonalClient.ConfigurationIncomplete | Personal client configuration is incomplete |
PersonalClient.CreateFailed | Failed to create personal client |
PersonalClient.DeleteFailed | Failed to delete personal client |
PersonalClient.Expired | Personal client has expired |
PersonalClient.NameExists | Personal client name already exists |
PersonalClient.NotFound | Personal client not found |
RuleEngine
| Error Code | Message |
|---|---|
RuleEngine.Conflict | Rule of device '{deviceId}' already exists.{reason} |
RuleEngine.EmptyRequest | At least one field(alertLevel, alertResetLevel or delay) must be provided. |
RuleEngine.InvalidDataObjectName | Invalid data object name. A data object name must use camel case or snake case, and must not be empty or contain only digits. |
RuleEngine.InvalidDataObjectNameWithSpecialWord | Invalid special character data object name. A data object name must not contain special characters. |
RuleEngine.InvalidDigitDataObjectName | Invalid digit data object name. A data object name must not contain only digits. |
RuleEngine.InvalidExpression | Expression is invalid and cannot be processed. Valid expression example: '>= 70', '==true' or '=="keyword"'. |
SubNode
| Error Code | Message |
|---|---|
SubNode.InvalidSensorSchema | Invalid sensor schema '{schema}' for sensor '{sensorName}' in device '{deviceName}'. Allowed values: string, boolean, integer, double |
SubNode.NotFound | SubNode Desired configuration not found for device {deviceId} |
Tenant
| Error Code | Message |
|---|---|
Tenant.AccessDenied | Access denied. |
Tenant.DeleteForbidden | This tenant cannot be deleted. |
Tenant.DeleteForbiddenDueLicense | Deletion is not allowed because the tenant has active license bindings. |
Tenant.DescriptionLengthError | Description must be at most {length} characters. |
Tenant.DomainConflict | Domain already exists. |
Tenant.DomainFormatError | Domain must contain only lowercase English letters, digits, and hyphens (-). |
Tenant.DomainLengthError | Domain must be at most {length} characters. |
Tenant.DomainRequired | Domain is required. |
Tenant.InvalidAppList | The provided app list is invalid. |
Tenant.NameLengthError | Name must be between 3 and {length} characters. |
Tenant.NameRequired | Name is required. |
Tenant.NotAllowToSetUp | Initial setup is not allowed: the system already has existing tenants. |
Tenant.NotFound | Tenant not found. |
Tenant.StatusImmutable | Tenant status cannot be modified. |
TenantEmailTemplate.DuplicateCode | Template code already exists for this tenant |
TenantEmailTemplate.HtmlContentRequired | Email HTML content is required |
TenantEmailTemplate.NotFound | Email template not found |
TenantEmailTemplate.SubjectRequired | Email subject is required |
TenantEmailTemplate.TemplateCreateFailed | Failed to create email template. |
TenantEmailTemplate.TemplateIdRequired | Email template ID is required. |
TenantSmtp.ChannelIdRequired | Notification channel ID is required. |
TenantSmtp.DuplicateSetting | SMTP setting already exists for this tenant |
TenantSmtp.HostRequired | SMTP host is required |
TenantSmtp.InvalidPort | SMTP port is invalid |
TenantSmtp.NotFound | SMTP configuration not found |
TenantSmtp.UsernameRequired | SMTP username is required |
Tunnel
| Error Code | Message |
|---|---|
Tunnel.ConfigurationNotFoundForHost | Configuration not found for Host: {host} |
Tunnel.InvalidSortDirection | Invalid sort direction: '{sortDirection}'. Use 'asc' or 'desc' |
Tunnel.InvalidSortingFormat | Invalid sorting format: '{sorting}'. Expected format: 'PropertyName' or 'PropertyName asc/desc' |
Tunnel.InvalidSortingProperty | Invalid sorting property: '{propertyName}'. Valid properties are: {validProperties} |
User
| Error Code | Message |
|---|---|
User.AccountInvalidEmailFormat | Account must be in a valid email format. |
User.AccountRequired | Account can't be empty |
User.AccountShouldBeMailFormat | Account must be a valid e-mail |
User.AccountShouldNotBeMailFormat | Account must not be an e-mail |
User.DeleteActiveUserForbidden | Cannot delete an active user. |
User.DeleteLastAdminForbidden | Last Admin cannot be deleted. |
User.DuplicateAccount | Account already exists |
User.InvalidAccountOrPassword | Invalid account or password |
User.InvalidFormat | Invalid request data |
User.LastAdminCantChangeRole | The last admin cannot change roles |
User.LastAdminCantDisable | The last admin cannot be disabled |
User.NameRequired | Name is required. |
User.NotFound | User not found. |
User.PasswordCantSameWithHistory | New password must differ from history |
User.PasswordResetPending | Your password has been reset. Please set a new password to continue signing in. |
User.PasswordsDoNotMatch | Passwords do not match. |
User.QueryItemExceedLimit | Query items exceed allowed limit |
User.RoleInvalidValue | Invalid role value. |
User.SelfOperationForbidden | Cannot perform this operation on yourself. |
User.UpdateLastAdminForbidden | Last Admin cannot be updated. |
User.UserConflict | User already exists. |