mirror of
https://github.com/Haidra-Org/AI-Horde.git
synced 2026-11-06 05:17:31 +00:00
KNOWN_RC is the API's published set of return codes: it feeds the swagger Enum and the SDK's RC type. Several emitted codes drifted from it: - Seven carried a trailing period - ControlNet-on-inpainting, remix, banned-client and anonymous- delete responses used names the list never declared - Five codes the endpoints emit were missing from the list altogether. To correct the problem: - Emit the declared names (InvalidRemixModel, BadClientAgent, AnonForbiddenUserMod, and the punctuation-free extra-image/text codes) - Add the five undeclared codes to KNOWN_RC and document every listed code the README lacked, using each raise site's message - Test that every return-code literal in the source is in KNOWN_RC and that the list holds bare identifiers, so the two cannot drift again
13 KiB
13 KiB
AI Horde Errors
Every time an exception is raised by the AI Horde, it will return both the http code, a human-readable "message" and an rc field which will contain a unique string code for each type of error the horde might raise. You can use these to better adjust your client logic or for informing your users using your own words or in other languages.
This page will list all existing Horde RCs
Format
The errors returned by the AI horde are always in this json format
{
"message": "Human readable explanation on what went wrong",
"rc": "SomeReturnCodeInCamelCase"
}
Return Codes
| RC | Explanation |
|---|---|
| MissingPrompt | The generation prompt was not given |
| CorruptPrompt | The prompts was rejected as unethical |
| KudosValidationError | Something went wrong when transferring kudos. This is a base rc, so you should never typically see it. |
| NoValidActions | Something went wrong when modifying an entity on the horde. This is a base rc, so you should never typically see it. |
| InvalidSize | Requested image size is not a multiple of 64 |
| InvalidPromptSize | Prompt is too large |
| TooManySteps | Too many steps requested for image generation |
| Profanity | Profanity Detected. This is a base rc, so you should never typically see it. |
| ProfaneWorkerName | Profanity detected in worker name |
| ProfaneBridgeAgent | Profanity detected in bridge agent |
| ProfaneWorkerInfo | Profanity detected in worker info |
| ProfaneUserName | Profanity detected in username |
| ProfaneUserContact | Profanity detected in user contact details |
| ProfaneAdminComment | Profanity detected in admin comment |
| ProfaneTeamName | Profanity detected in team name |
| ProfaneTeamInfo | Profanity detected in team info |
| TooLong | Provided string was too long. This is a base rc, so you should never typically see it. |
| TooLongWorkerName | The provided worker name is too long |
| TooLongUserName | The provided username is too long |
| NameAlreadyExists | The provided name already exists. This is a base rc, so you should never typically see it. |
| WorkerNameAlreadyExists | The provided worker name already exists |
| TeamNameAlreadyExists | The provided team name already exists |
| PolymorphicNameConflict | The provided worker name already exists for a different worker type (e.g. Dreamer VS Scribe) |
| ImageValidationFailed | Source image validation failed unexpectedly |
| SourceImageResolutionExceeded | Source image resolution larger than the max allowed by the AI Horde |
| SourceImageSizeExceeded | Source image file size larger than the max allowed by the AI Horde |
| SourceImageUrlInvalid | Source image url does not contain an image |
| SourceImageUnreadable | Source image could not be parsed |
| InpaintingMissingMask | Missing mask or alpha channel for inpainting |
| SourceMaskUnnecessary | Source mask sent without a source image |
| UnsupportedSampler | Selected sampler unsupported with selected model |
| UnsupportedModel | The required model name is unsupported with this payload. This is a base rc, so you should never typically see it. |
| ControlNetUnsupported | ControlNet is unsupported in combination with this model |
| ControlNetSourceMissing | Missing source image for ControlNet workflow |
| ControlNetInvalidPayload | sent CN source and requested CN source at the same time |
| SourceImageRequiredForModel | Source image is required for using this model |
| UnexpectedModelName | Model name sent is not a Stable Diffusion checkpoint |
| TooManyUpscalers | Tried to use more than 1 upscaler at a time |
| ProcGenNotFound | The used generation for aesthetic ratings doesn't exist |
| InvalidAestheticAttempt | Aesthetics rating attempt failed |
| AestheticsNotCompleted | Attempted to rate non-completed request |
| AestheticsNotPublic | Attempted to rate non-shared request |
| AestheticsDuplicate | Sent duplicate images in an aesthetics set |
| AestheticsMissing | Aesthetic ratings missing |
| AestheticsSolo | Aesthetic ratings best-of contain a single image |
| AestheticsConfused | The best image is not the one with the highest aesthetic rating |
| AestheticsAlreadyExist | Aesthetic rating already submitted |
| AestheticsServerRejected | Aesthetic server rejected submission |
| AestheticsServerError | Aesthetic server returned error (provided) |
| AestheticsServerDown | Aesthetic server is down |
| AestheticsServerTimeout | Aesthetic server timed out during submission |
| InvalidAPIKey | Invalid AI Horde API key provided |
| WrongCredentials | Provided user does not own this worker |
| NotAdmin | Request needs AI Horded admin credentials |
| NotModerator | Request needs AI Horded moderator credentials |
| NotOwner | Request needs worker owner credentials |
| NotPrivileged | This user is not hardcoded to perform this operation |
| AnonForbidden | Anonymous is not allowed to perform this operation |
| AnonForbiddenWorker | Anonymous tried to run a worker |
| AnonForbiddenUserMod | Anonymous tried to modify their user account |
| NotTrusted | Untrusted users are not allowed to perform this operation |
| UntrustedTeamCreation | Untrusted user tried to create a team |
| UntrustedUnsafeIP | Untrusted user tried to use a VPN for a worker |
| WorkerMaintenance | Worker has been put into maintenance and cannot pop new jobs |
| WorkerFlaggedMaintenance | Worker owner has been flagged and worker has been put into permanent maintenance |
| TooManySameIPs | Same IP attempted to spawn too many workers |
| WorkerInviteOnly | AI Horde is in worker invite-only mode and worker owner needs to request permission |
| UnsafeIP | Worker attempted to connect from VPN |
| TimeoutIP | Operation rejected because user IP in timeout |
| TooManyNewIPs | Too many workers from new IPs currently |
| KudosUpfront | This request requires upfront kudos to accept |
| SharedKeyEmpty | Shared Key used in the request does not have any more kudos |
| InvalidJobID | Job not found when trying to submit. This probably means its request was delected for inactivity |
| RequestNotFound | Request not found. This probably means it was delected for inactivity |
| WorkerNotFound | Worker ID not found |
| TeamNotFound | Team ID not found |
| FilterNotFound | Regex filter not found |
| UserNotFound | User not found |
| DuplicateGen | Job has already been submitted |
| AbortedGen | Request aborted because too many jobs have failed |
| RequestExpired | Request expired |
| TooManyPrompts | User has requested too many generations concurrently |
| NoValidWorkers | No workers online which can pick up this request |
| MaintenanceMode | Request aborted because horde is in maintenance mode |
| TargetAccountFlagged | Action rejected because target user has been flagged for violating Horde ToS |
| SourceAccountFlagged | Action rejected because source user has been flagged for violating Horde ToS |
| FaultWhenKudosReceiving | Unexpected error when receiving kudos |
| FaultWhenKudosSending | Unexpected error when sending kudos |
| TooFastKudosTransfers | User tried to send kudos too fast after receiving them from the same user |
| KudosTransferToAnon | User tried to transfer kudos to Anon |
| KudosTransferToSelf | User tried to transfer kudos to themselves |
| KudosTransferNotEnough | User tried to transfer more kudos than they have |
| NegativeKudosTransfer | User tried to transfer negative kudos |
| KudosTransferFromAnon | User tried to transfer kudos using the Anon API key |
| InvalidAwardUsername | Tried to award kudos to non-existing user |
| KudosAwardToAnon | Tried to award kudos to Anonymous user |
| NotAllowedAwards | This user is not allowed to Award Kudos |
| NoWorkerModSelected | No valid worker modification selected |
| NoUserModSelected | No valid user modification selected |
| NoHordeModSelected | No valid horde modification selected |
| NoTeamModSelected | No valid team modification selected |
| NoFilterModSelected | No valid regex filter modification selected |
| NoSharedKeyModSelected | No valid shared key modification selected |
| BadRequest | Generic HTTP 400 code. You should typically never see this |
| Forbidden | Generic HTTP 401 code. You should typically never see this |
| Locked | Generic HTTP code. You should typically never see this |
| ControlNetInpaintingMismatch | ControlNet cannot be used with inpainting at this time |
| ControlNetInpaintingMismatch | ControlNet does not work with SDXL currently |
| HiResFixMismatch | hires fix does not work with SDXL currently |
| TooManyLoras | You cannot request more than 5 loras per generation |
| BadLoraVersion | explicit LoRa version requests have to be a version ID (i.e integer). |
| TooManyTIs | You cannot request more than 20 Textual Inversions per generation. |
| BetaAnonForbidden | Anonymous users cannot use the SDXL_beta. |
| BetaComparisonFault | You need to request at least 2 images for SDXL to allow for comparison |
| BadCFGDecimals | cfg_scale must be rounded to 2 decimal places |
| BadCFGNumber | cfg_scale must be a valid number |
| BadClientAgent | Banned client Agent |
| SpecialMissingPayload | Special models have to include a special payload |
| SpecialForbidden | This model can only be requested by a specific username |
| SpecialMissingUsername | Special models must always include the username, in the form of 'horde_special::user#id' |
| SpecialModelNeedsSpecialUser | Only special users can request a special model.", "SpecialModelNeedsSpecialUser |
| SpecialFieldNeedsSpecialUser | Only special users can send a special field |
| Img2ImgMismatch | Img2Img cannot be used in combination with this model |
| TilingMismatch | Tiling cannot be used in combination with this model |
| ControlNetMismatch | ControlNet cannot be used in combination with this model |
| HiResMismatch | HiRes fix cannot be used in combination with this model |
| EducationCannotSendKudos | Education accounts cannot transfer kudos out |
| InvalidPriorityUsername | Prioritized user format wrong |
| SharedKeyExpired | This shared key has expired |
| SharedKeyInsufficientKudos | This Shared key has insufficient kudos for this request |
| OnlyServiceAccountProxy | This request requires a Service Account |
| RequiresTrust | This request requires the user to be trusted or a patreon |
| SamplerKnobInapplicable | The requested sampler has no such solver setting |
| SamplerKnobOutOfRange | A solver setting is outside the range this sampler accepts |
| SamplerSolverTypeUnsupported | This sampler does not accept the requested solver type |
| SamplerSchedulerMismatch | This sampler and scheduler combination does not converge |
| SchedulerBaselineMismatch | The requested scheduler is not defined for this model's baseline |
| FlowShiftInapplicable | Flow shift is not applied by the selected model baseline's backend graph |
| FlowShiftOutOfRange | Flow shift is outside the backend's accepted range |
| ControlStrengthWithoutControlType | Control strength was sent without a control type or the QR workflow to apply it to |
| ControlStrengthOutOfRange | Control strength is outside the accepted range |
| CannotDeleteMod | A moderator account cannot be deleted; contact an admin |
| CannotWipeActiveUser | An account that was active in the last 30 days cannot be wiped yet |
| DeletedUser | This account has been scheduled for deletion and is disabled |
| ExcessiveStopSequence | The total length of the stop sequences exceeds the allowed limit |
| InvalidControlType | The annotation form requires a known control_type in its payload |
| InvalidExtraSourceImages | This request type does not accept extra source images |
| InvalidExtraTexts | This request type does not accept extra texts |
| InvalidPromptEncoding | The prompt contains characters that cannot be encoded (unpaired UTF-16 surrogates) |
| InvalidRemixModel | Image remix is not available for this model baseline |
| InvalidTransparencyCN | Transparent images cannot be generated in ControlNet workflows |
| InvalidTransparencyImg2Img | Transparent images cannot be generated in img2img workflows |
| InvalidTransparencyModel | Transparent images cannot be generated for this model baseline |
| MessagesOnlyOwnWorkers | Messages can only be sent to your own workers |
| MissingExtraTexts | This workflow requires the extra texts to be provided |
| MissingFullSamplerOrder | A custom sampler order must list every sampler |
| MoreThanMinExtraSourceImage | Only trusted users and patrons can send more than one extra source image |
| NonServiceForbidden | Only service accounts can set a proxy passkey |
| NotUserOrMod | Only the user themselves or a moderator can delete a user |
| NulByteInPayload | The request payload may not contain NUL bytes |
| SharedKeyAssignedStyles | This shared key is restricted to specific styles |
| StylesAnonForbidden | Anonymous users cannot create styles |
| StylesRequiresCustomizer | Only customizers and trusted users can create styles |
| ThingNotFound | No item exists with the given ID |
| TokenOverflow | More tokens were requested than the context length allows |
| TooManyExtraSourceImages | At most 5 extra source images can be sent |
| TooManyStopSequences | Too many stop sequences were specified |
| TooManyWorkers | Untrusted users can have at most 3 distinct workers |
| TooManyWorkersTrusted | Trusted users cannot onboard more than 20 workers without contacting the team |
| UserNotDeleted | The user is not deleted and cannot be undeleted |