Every ContractError code with root cause, debugging steps, resolution, and a triggering example.
Use ContractError::troubleshooting_hint() on-chain for a short hint; this file is the full guide.
Searchable web reference: docs/error-reference.html.
| Code | Error | Summary |
|---|---|---|
| 1 | AlreadyInitialized |
Contract has already been initialized |
| 2 | Unauthorized |
Unauthorized access - caller is not permitted |
| 3 | ProjectNotFound |
Project not found |
| 4 | InvalidRating |
Invalid rating - must be between 1 and 5 |
| 5 | ReviewNotFound |
Review not found |
| 6 | DuplicateReview |
Duplicate review submission for same project and reviewer |
| 7 | NotReviewOwner |
Caller is not the owner of the targeted review |
| 8 | VerificationNotFound |
Verification record not found |
| 9 | InvalidStatusTransition |
Invalid verification status transition |
| 10 | AdminOnly |
Only admin can perform this action |
| 11 | FeeConfigNotSet |
Fee configuration not set |
| 12 | TreasuryNotSet |
Treasury address not set |
| 13 | InsufficientFee |
Insufficient fee paid |
| 14 | InvalidProjectData |
Invalid project data - missing required fields |
| 15 | ProjectNameTooLong |
Project name too long |
| 16 | InvalidProjectNameFormat |
Invalid project name format |
| 17 | CannotRemoveLastAdmin |
Cannot remove last admin |
| 18 | AdminNotFound |
Admin not found |
| 19 | InvalidProjectName |
Invalid project name - empty or whitespace only |
| 20 | InvalidProjectDescription |
Invalid project description - empty or whitespace only |
| 21 | InvalidProjectCategory |
Invalid project category - empty or whitespace only |
| 22 | ProjectDescriptionTooLong |
Project description too long |
| 23 | InvalidProjectDescriptionFormat |
Project description contains invalid characters |
| 24 | MaxProjectsExceeded |
Maximum number of projects exceeded |
| 25 | InvalidProjectWebsite |
Invalid project website |
| 26 | InvalidProjectLogoCid |
Invalid project logo CID |
| 27 | InvalidProjectMetadataCid |
Invalid project metadata CID |
| 28 | ProjectCategoryTooLong |
Project category too long |
| 29 | ProjectWebsiteTooLong |
Project website too long |
| 30 | VerificationNotRevocable |
Project is not in a revocable state (must be Verified) |
| 31 | TransferNotFound |
No pending ownership transfer found for this project |
| 32 | NotPendingTransferRecipient |
Caller is not the designated recipient of the pending transfer |
| 33 | VerificationExpired |
Verification has expired and is no longer active |
| 34 | ProjectAlreadyExists |
Project with this name or slug already exists |
| 35 | InvalidCid |
Invalid CID format |
| 36 | InvalidInput |
Invalid input provided |
| 37 | InvalidProjectSlug |
Invalid project slug |
| 38 | InvalidStatus |
Invalid status for the requested operation |
| 39 | AlreadyArchived |
Project is already archived |
| 40 | ProjectNotArchived |
Project is not archived |
| 41 | ProjectTooYoung |
Project is too young for this operation |
| 42 | VerifiedFieldFrozen |
Verified field is frozen and cannot be modified |
| 43 | ReservedName |
Project name is reserved |
| 44 | DuplicateProjectName |
Duplicate project name |
| 45 | CannotLinkToSelf |
Cannot link a project to itself |
| 46 | AlreadyLinked |
Projects are already linked |
| 47 | AlreadyFollowing |
Already following this project |
| 48 | NotFollowing |
Not following this project |
| 49 | AlreadyReported |
Review has already been reported |
| 50 | ReviewAlreadyHidden |
Review is already hidden |
| 51 | ReviewNotHidden |
Review is not hidden |
| 52 | CollectionNotFound |
Collection not found |
| 53 | CollectionExists |
Collection already exists |
| 54 | AlreadyInCollection |
Project is already in the collection |
| 55 | ReviewsDisabled |
Reviews are disabled for this project |
| 56 | OwnerCannotReview |
Project owner cannot review their own project |
| 57 | InvalidNameFormat |
Invalid name format |
| 58 | ReviewerNotEligible |
Reviewer is not eligible |
| 59 | ReviewFeeRequired |
Review fee is required |
| 60 | CollectionFull |
Collection is full |
| 61 | ContractPaused |
Contract is paused |
| 62 | AlreadyBookmarked |
Project is already bookmarked |
| 63 | AlreadyEndorsed |
Project is already endorsed |
| 64 | NotBookmarked |
Project is not bookmarked |
| 65 | NotEndorsed |
Project is not endorsed |
| 66 | TimelockNotExpired |
Timelock action has not expired yet |
| 67 | PayloadHashMismatch |
Stored proposal payload does not match its recorded hash |
| 68 | InvalidTags |
Tag list is invalid (empty, over-length, too many, bad charset, or duplicates) |
| 69 | ProposalExpired |
Admin proposal has passed its expiry time and can no longer be executed |
| 70 | NoRefundAvailable |
No refund is recorded for the given project. |
| 71 | RefundAlreadyClaimed |
The recorded refund has already been paid out. |
| 72 | ArithmeticOverflow |
A checked arithmetic operation overflowed. |
| 73 | NotInCollection |
Project is not in the collection |
| 74 | ThresholdDowngradeRequiresSupermajority |
A SetThreshold proposal that would lower the threshold must be approved by strictly more admins than |
| 75 | CircularDependency |
Adding this dependency would create a circular reference in the transitive project-dependency graph |
| 76 | DependencyDepthExceeded |
Adding this dependency would make the transitive project-dependency chain deeper than `MAX_DEPENDENC |
| 77 | MultiSigRequired |
Multi-signature admin approval is required for this operation. |
| 78 | FeePaymentExpired |
The stored fee payment has expired and is no longer valid. |
| 79 | LinkedProjectNotFound |
The linked project referenced by this operation no longer exists. |
| 80 | AlreadyMaintainerAdded |
The maintainer is already on the project maintainer list. |
| 81 | DisputeNotPending |
The dispute is not in a pending state and cannot be resolved. |
| 82 | TooManyEvidenceLinks |
Too many evidence links supplied (max MAX_EVIDENCE_LINKS_PER_REVIEW). |
| 83 | InvalidEvidenceLink |
Evidence link URL is empty or has an invalid scheme. |
| 84 | EvidenceLinkTooLong |
Evidence link URL exceeds MAX_EVIDENCE_LINK_URL_LEN bytes. |
| 85 | ReviewArchived |
The requested review has been archived and is no longer in primary storage. Use `get_archived_review |
| 86 | ReviewNotArchived |
The requested review has not been archived; the operation requires an archived review (e.g., `set_ar |
| 87 | AppealLimitExceeded |
Maximum number of appeals for the current rejection has been reached. The project must follow the ma |
| 88 | AppealNotFound |
The requested verification appeal does not exist or is no longer valid. |
| 89 | AppealAlreadyReviewed |
The verification appeal has already been reviewed and cannot be changed. |
| 90 | AdminLacksExpertise |
Admin lacks the required expertise for this verification assignment. |
| 91 | AssignmentNotFound |
Verification assignment record not found. |
| 92 | InvalidAssignmentStatus |
Invalid assignment status for the requested transition. |
| 93 | SlaNotBreached |
SLA has not been breached yet; cannot escalate without cause. |
| 94 | NotAssignedAdmin |
Caller is not the assigned admin for this verification. |
| 95 | NoActiveAssignment |
No active assignment exists for this verification request. |
| 96 | ParameterOutOfRange |
A governance parameter value was set outside its configured [min, max] range (issue #740). Use `ge |
| 97 | InvalidParamRange |
A governance parameter range was supplied with min > max, or the range would leave the parameter's |
| 98 | RecoveryCaseNotFound |
The referenced project-ownership recovery case does not exist (issue #747). |
| 99 | RecoveryNotActive |
The ownership-recovery case is not in a state that allows this operation — e.g. voting before the no |
| 100 | BulkImportValidationFailed |
A bulk import was rejected because at least one entry failed validation. Nothing was written (issue |
| 101 | BulkImportTooLarge |
A bulk import exceeded MAX_BULK_IMPORT_PROJECTS entries (issue #742). Split the payload across sev |
| 102 | FolderNotFound |
Bookmark folder not found. |
| 103 | FolderAlreadyExists |
A folder with this name already exists for the user. |
| 104 | MaxFoldersExceeded |
The maximum number of bookmark folders per user has been reached. |
| 105 | FolderDepthExceeded |
Nested folder depth limit exceeded. |
| 106 | SmartFolderNotFound |
Smart folder not found. |
| 107 | MaxSmartFoldersExceeded |
The maximum number of smart folders per user has been reached. |
| 108 | RecommendationNotFound |
Recommendation referenced by the operation does not exist. |
| 109 | RecommendationFeedbackAlreadyGiven |
User has already submitted thumbs-up / thumbs-down feedback for this recommendation. Feedback cannot |
| 110 | RecommendationLabelTooLong |
Recommendation label string exceeds the configured length limit. |
| 111 | RecommendationNoImpression |
Engagement recording rejected because impressions are required before clicks. (Prevents CTR inflatio |
| 112 | RecommendationInvalidContext |
The combination of audience + reference project specified for the recommendation is invalid (e.g. Si |
| 113 | RecommendationAudienceMismatch |
Attempted to record feedback from a user who does not match the recommendation's restricted audience |
| 114 | CommunityColNotFound |
Community collection referenced by the operation does not exist. |
| 115 | CommunityColNameExists |
Community-collection name already in use by another community collection. |
| 116 | CommunityColInvalidMetadata |
Community-collection name or description violates configured length limits. |
| 117 | CommunityColFull |
Community-collection project-membership limit reached; cannot add more. |
| 118 | CommunityColNotCurator |
Operation restricted to the creator or an active curator but caller is neither. |
| 119 | CommunityColVoteAlreadyCast |
Voter has already cast a vote for this project in this collection. Voting is append-only per voter p |
| 120 | CommunityColAlreadyIncluded |
Project is already explicitly included in the community collection. |
| 121 | CommunityColNotIncluded |
Project is not in the community collection (for removal operations). |
| 122 | CommunityColCuratorsEmpty |
A curator set can never be empty — removing the last curator (or the creator) would strand the colle |
| 123 | CommunityColCreatorIsImmutable |
Creator cannot be removed from the curator set — creator status is permanent. |
| 124 | CommunityColRevenueShareInvalid |
Revenue share cannot exceed 10_000 bps; creator share + per-curator allocation sum must be ≤ 10_000 |
| 125 | CommunityColThresholdInvalid |
Vote thresholds must both be zero (disabled) or both be > zero (to keep the approval/disapproval sym |
| 126 | CommunityColIsTemplate |
Template collections cannot accept votes, revenue attribution, or member edits — clone them first to |
| 127 | CommunityColTemplateUnknown |
The referenced pre-defined template id is not in the CommunityCollectionTemplateId enum. |
| 128 | CommunityColFeaturedCapExceeded |
Admin flagged this community collection as featured but a global cap on featured community collectio |
| 129 | SocialAnalyticsProjectNotFound |
Social analytics: target project passed to the analytics endpoint does not exist in the registry. |
| 130 | SocialAnalyticsInvalidWindow |
Social analytics: caller passed window_start_day > window_end_day. |
| 131 | SocialAnalyticsCheckpointCapExceeded |
Social analytics: daily-checkpoint storage has a cap per project so that the per-project index canno |
| 132 | SocialAnalyticsNoPeers |
Social analytics: peer-comparison set requires at least 1 other project in the same category to run |
| 133 | SocialAnalyticsNoCheckpoints |
Social analytics: the export/report endpoint requires at least one checkpoint to produce a "growth o |
| 134 | InvalidLanguageCode |
Invalid ISO 639-1 language code format (must be exactly 2 lowercase letters). |
| 135 | VetoLimitExceeded |
Admin has exceeded the monthly veto (rejection) limit (#730). |
| 136 | CommentLocked |
Comment on a proposal is not allowed because voting has already started. |
| 137 | EmergencyRecoveryNotFound |
Emergency recovery request not found. |
| 138 | EmergencyRecoveryNotPending |
Emergency recovery request is not in the pending state. |
| 139 | ThresholdRequiresUnanimousApproval |
Threshold increase requires all admins to approve. |
| 140 | RateLimitExceeded |
Caller exceeded the configured per-address rate limit for this operation (issue #945). Wait for the |
- Meaning / root cause: Contract has already been initialized
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 1. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::AlreadyInitialized)));- Meaning / root cause: Unauthorized access - caller is not permitted
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 2. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::Unauthorized)));- Meaning / root cause: Project not found
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 3. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ProjectNotFound)));- Meaning / root cause: Invalid rating - must be between 1 and 5
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 4. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::InvalidRating)));- Meaning / root cause: Review not found
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 5. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ReviewNotFound)));- Meaning / root cause: Duplicate review submission for same project and reviewer
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 6. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::DuplicateReview)));- Meaning / root cause: Caller is not the owner of the targeted review
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 7. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::NotReviewOwner)));- Meaning / root cause: Verification record not found
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 8. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::VerificationNotFound)));- Meaning / root cause: Invalid verification status transition
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 9. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::InvalidStatusTransition)));- Meaning / root cause: Only admin can perform this action
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 10. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::AdminOnly)));- Meaning / root cause: Fee configuration not set
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 11. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::FeeConfigNotSet)));- Meaning / root cause: Treasury address not set
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 12. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::TreasuryNotSet)));- Meaning / root cause: Insufficient fee paid
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 13. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::InsufficientFee)));- Meaning / root cause: Invalid project data - missing required fields
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 14. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::InvalidProjectData)));- Meaning / root cause: Project name too long
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 15. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ProjectNameTooLong)));- Meaning / root cause: Invalid project name format
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 16. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::InvalidProjectNameFormat)));- Meaning / root cause: Cannot remove last admin
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 17. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::CannotRemoveLastAdmin)));- Meaning / root cause: Admin not found
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 18. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::AdminNotFound)));- Meaning / root cause: Invalid project name - empty or whitespace only
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 19. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::InvalidProjectName)));- Meaning / root cause: Invalid project description - empty or whitespace only
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 20. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::InvalidProjectDescription)));- Meaning / root cause: Invalid project category - empty or whitespace only
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 21. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::InvalidProjectCategory)));- Meaning / root cause: Project description too long
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 22. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ProjectDescriptionTooLong)));- Meaning / root cause: Project description contains invalid characters
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 23. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::InvalidProjectDescriptionFormat)));- Meaning / root cause: Maximum number of projects exceeded
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 24. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::MaxProjectsExceeded)));- Meaning / root cause: Invalid project website
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 25. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::InvalidProjectWebsite)));- Meaning / root cause: Invalid project logo CID
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 26. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::InvalidProjectLogoCid)));- Meaning / root cause: Invalid project metadata CID
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 27. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::InvalidProjectMetadataCid)));- Meaning / root cause: Project category too long
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 28. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ProjectCategoryTooLong)));- Meaning / root cause: Project website too long
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 29. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ProjectWebsiteTooLong)));- Meaning / root cause: Project is not in a revocable state (must be Verified)
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 30. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::VerificationNotRevocable)));- Meaning / root cause: No pending ownership transfer found for this project
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 31. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::TransferNotFound)));- Meaning / root cause: Caller is not the designated recipient of the pending transfer
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 32. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::NotPendingTransferRecipient)));- Meaning / root cause: Verification has expired and is no longer active
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 33. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::VerificationExpired)));- Meaning / root cause: Project with this name or slug already exists
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 34. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ProjectAlreadyExists)));- Meaning / root cause: Invalid CID format
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 35. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::InvalidCid)));- Meaning / root cause: Invalid input provided
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 36. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::InvalidInput)));- Meaning / root cause: Invalid project slug
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 37. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::InvalidProjectSlug)));- Meaning / root cause: Invalid status for the requested operation
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 38. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::InvalidStatus)));- Meaning / root cause: Project is already archived
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 39. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::AlreadyArchived)));- Meaning / root cause: Project is not archived
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 40. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ProjectNotArchived)));- Meaning / root cause: Project is too young for this operation
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 41. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ProjectTooYoung)));- Meaning / root cause: Verified field is frozen and cannot be modified
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 42. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::VerifiedFieldFrozen)));- Meaning / root cause: Project name is reserved
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 43. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ReservedName)));- Meaning / root cause: Duplicate project name
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 44. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::DuplicateProjectName)));- Meaning / root cause: Cannot link a project to itself
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 45. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::CannotLinkToSelf)));- Meaning / root cause: Projects are already linked
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 46. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::AlreadyLinked)));- Meaning / root cause: Already following this project
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 47. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::AlreadyFollowing)));- Meaning / root cause: Not following this project
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 48. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::NotFollowing)));- Meaning / root cause: Review has already been reported
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 49. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::AlreadyReported)));50 — ReviewAlreadyHidden
- Meaning / root cause: Review is already hidden
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 50. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ReviewAlreadyHidden)));51 — ReviewNotHidden
- Meaning / root cause: Review is not hidden
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 51. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ReviewNotHidden)));- Meaning / root cause: Collection not found
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 52. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::CollectionNotFound)));- Meaning / root cause: Collection already exists
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 53. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::CollectionExists)));- Meaning / root cause: Project is already in the collection
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 54. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::AlreadyInCollection)));- Meaning / root cause: Reviews are disabled for this project
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 55. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ReviewsDisabled)));- Meaning / root cause: Project owner cannot review their own project
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 56. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::OwnerCannotReview)));- Meaning / root cause: Invalid name format
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 57. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::InvalidNameFormat)));- Meaning / root cause: Reviewer is not eligible
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 58. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ReviewerNotEligible)));- Meaning / root cause: Review fee is required
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 59. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ReviewFeeRequired)));- Meaning / root cause: Collection is full
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 60. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::CollectionFull)));- Meaning / root cause: Contract is paused
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 61. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ContractPaused)));- Meaning / root cause: Project is already bookmarked
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 62. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::AlreadyBookmarked)));- Meaning / root cause: Project is already endorsed
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 63. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::AlreadyEndorsed)));- Meaning / root cause: Project is not bookmarked
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 64. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::NotBookmarked)));- Meaning / root cause: Project is not endorsed
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 65. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::NotEndorsed)));- Meaning / root cause: Timelock action has not expired yet
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 66. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::TimelockNotExpired)));- Meaning / root cause: Stored proposal payload does not match its recorded hash
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 67. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::PayloadHashMismatch)));- Meaning / root cause: Tag list is invalid (empty, over-length, too many, bad charset, or duplicates)
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 68. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::InvalidTags)));- Meaning / root cause: Admin proposal has passed its expiry time and can no longer be executed
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 69. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ProposalExpired)));- Meaning / root cause: No refund is recorded for the given project.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 70. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::NoRefundAvailable)));- Meaning / root cause: The recorded refund has already been paid out.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 71. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::RefundAlreadyClaimed)));- Meaning / root cause: A checked arithmetic operation overflowed.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 72. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ArithmeticOverflow)));- Meaning / root cause: Project is not in the collection
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 73. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::NotInCollection)));- Meaning / root cause: A SetThreshold proposal that would lower the threshold must be approved by strictly more admins than the proposed new threshold (supermajority rule). This prevents the multi-sig quorum from being silently dismantled by exactly the number of colluding admins it is meant to require.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 74. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ThresholdDowngradeRequiresSupermajority)));- Meaning / root cause: Adding this dependency would create a circular reference in the transitive project-dependency graph (project A depends on B which depends back on A, directly or indirectly).
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 75. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::CircularDependency)));- Meaning / root cause: Adding this dependency would make the transitive project-dependency chain deeper than
MAX_DEPENDENCY_DEPTHlevels. - Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 76. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::DependencyDepthExceeded)));- Meaning / root cause: Multi-signature admin approval is required for this operation.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 77. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::MultiSigRequired)));- Meaning / root cause: The stored fee payment has expired and is no longer valid.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 78. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::FeePaymentExpired)));- Meaning / root cause: The linked project referenced by this operation no longer exists.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 79. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::LinkedProjectNotFound)));- Meaning / root cause: The maintainer is already on the project maintainer list.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 80. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::AlreadyMaintainerAdded)));- Meaning / root cause: The dispute is not in a pending state and cannot be resolved.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 81. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::DisputeNotPending)));- Meaning / root cause: Too many evidence links supplied (max MAX_EVIDENCE_LINKS_PER_REVIEW).
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 82. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::TooManyEvidenceLinks)));- Meaning / root cause: Evidence link URL is empty or has an invalid scheme.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 83. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::InvalidEvidenceLink)));- Meaning / root cause: Evidence link URL exceeds MAX_EVIDENCE_LINK_URL_LEN bytes.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 84. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::EvidenceLinkTooLong)));- Meaning / root cause: The requested review has been archived and is no longer in primary storage. Use
get_archived_reviewto retrieve the compact archived record. - Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 85. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ReviewArchived)));- Meaning / root cause: The requested review has not been archived; the operation requires an archived review (e.g.,
set_archived_review_arweave_tx). - Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 86. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ReviewNotArchived)));- Meaning / root cause: Maximum number of appeals for the current rejection has been reached. The project must follow the manual review process after the cap is hit.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 87. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::AppealLimitExceeded)));- Meaning / root cause: The requested verification appeal does not exist or is no longer valid.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 88. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::AppealNotFound)));- Meaning / root cause: The verification appeal has already been reviewed and cannot be changed.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 89. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::AppealAlreadyReviewed)));- Meaning / root cause: Admin lacks the required expertise for this verification assignment.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 90. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::AdminLacksExpertise)));- Meaning / root cause: Verification assignment record not found.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 91. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::AssignmentNotFound)));- Meaning / root cause: Invalid assignment status for the requested transition.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 92. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::InvalidAssignmentStatus)));- Meaning / root cause: SLA has not been breached yet; cannot escalate without cause.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 93. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::SlaNotBreached)));- Meaning / root cause: Caller is not the assigned admin for this verification.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 94. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::NotAssignedAdmin)));- Meaning / root cause: No active assignment exists for this verification request.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 95. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::NoActiveAssignment)));- Meaning / root cause: A governance parameter value was set outside its configured
[min, max]range (issue #740). Useget_param_rangeto read the bounds currently in force. - Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 96. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ParameterOutOfRange)));- Meaning / root cause: A governance parameter range was supplied with
min > max, or the range would leave the parameter's current value invalid (issue #740). - Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 97. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::InvalidParamRange)));- Meaning / root cause: The referenced project-ownership recovery case does not exist (issue #747).
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 98. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::RecoveryCaseNotFound)));- Meaning / root cause: The ownership-recovery case is not in a state that allows this operation — e.g. voting before the nomination reached
RECOVERY_REQUIRED_ENDORSEMENTS, or a second vote from the same address (issue #747). - Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 99. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::RecoveryNotActive)));- Meaning / root cause: A bulk import was rejected because at least one entry failed validation. Nothing was written (issue #742); the
validate_bulk_importdry run reports the individual failures. - Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 100. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::BulkImportValidationFailed)));- Meaning / root cause: A bulk import exceeded
MAX_BULK_IMPORT_PROJECTSentries (issue #742). Split the payload across several calls. - Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 101. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::BulkImportTooLarge)));- Meaning / root cause: Bookmark folder not found.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 102. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::FolderNotFound)));- Meaning / root cause: A folder with this name already exists for the user.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 103. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::FolderAlreadyExists)));- Meaning / root cause: The maximum number of bookmark folders per user has been reached.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 104. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::MaxFoldersExceeded)));- Meaning / root cause: Nested folder depth limit exceeded.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 105. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::FolderDepthExceeded)));- Meaning / root cause: Smart folder not found.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 106. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::SmartFolderNotFound)));- Meaning / root cause: The maximum number of smart folders per user has been reached.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 107. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::MaxSmartFoldersExceeded)));- Meaning / root cause: Recommendation referenced by the operation does not exist.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 108. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::RecommendationNotFound)));- Meaning / root cause: User has already submitted thumbs-up / thumbs-down feedback for this recommendation. Feedback cannot be rewritten (see issue #820 — feedback is append-only to preserve an auditable paper-trail for recommendation improvement).
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 109. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::RecommendationFeedbackAlreadyGiven)));- Meaning / root cause: Recommendation label string exceeds the configured length limit.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 110. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::RecommendationLabelTooLong)));- Meaning / root cause: Engagement recording rejected because impressions are required before clicks. (Prevents CTR inflation via click-only spamming.)
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 111. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::RecommendationNoImpression)));- Meaning / root cause: The combination of audience + reference project specified for the recommendation is invalid (e.g. Similar recs require a reference project).
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 112. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::RecommendationInvalidContext)));- Meaning / root cause: Attempted to record feedback from a user who does not match the recommendation's restricted audience (when audience.is_some).
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 113. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::RecommendationAudienceMismatch)));- Meaning / root cause: Community collection referenced by the operation does not exist.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 114. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::CommunityColNotFound)));- Meaning / root cause: Community-collection name already in use by another community collection.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 115. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::CommunityColNameExists)));- Meaning / root cause: Community-collection name or description violates configured length limits.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 116. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::CommunityColInvalidMetadata)));- Meaning / root cause: Community-collection project-membership limit reached; cannot add more.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 117. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::CommunityColFull)));- Meaning / root cause: Operation restricted to the creator or an active curator but caller is neither.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 118. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::CommunityColNotCurator)));- Meaning / root cause: Voter has already cast a vote for this project in this collection. Voting is append-only per voter per project per collection.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 119. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::CommunityColVoteAlreadyCast)));- Meaning / root cause: Project is already explicitly included in the community collection.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 120. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::CommunityColAlreadyIncluded)));- Meaning / root cause: Project is not in the community collection (for removal operations).
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 121. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::CommunityColNotIncluded)));- Meaning / root cause: A curator set can never be empty — removing the last curator (or the creator) would strand the collection.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 122. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::CommunityColCuratorsEmpty)));- Meaning / root cause: Creator cannot be removed from the curator set — creator status is permanent.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 123. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::CommunityColCreatorIsImmutable)));- Meaning / root cause: Revenue share cannot exceed 10_000 bps; creator share + per-curator allocation sum must be ≤ 10_000 bps.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 124. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::CommunityColRevenueShareInvalid)));- Meaning / root cause: Vote thresholds must both be zero (disabled) or both be > zero (to keep the approval/disapproval symmetry obvious and avoid accidental open-gate configurations).
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 125. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::CommunityColThresholdInvalid)));- Meaning / root cause: Template collections cannot accept votes, revenue attribution, or member edits — clone them first to produce a working collection.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 126. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::CommunityColIsTemplate)));- Meaning / root cause: The referenced pre-defined template id is not in the
CommunityCollectionTemplateIdenum. - Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 127. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::CommunityColTemplateUnknown)));- Meaning / root cause: Admin flagged this community collection as featured but a global cap on featured community collections was reached.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 128. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::CommunityColFeaturedCapExceeded)));- Meaning / root cause: Social analytics: target project passed to the analytics endpoint does not exist in the registry.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 129. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::SocialAnalyticsProjectNotFound)));- Meaning / root cause: Social analytics: caller passed
window_start_day > window_end_day. - Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 130. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::SocialAnalyticsInvalidWindow)));- Meaning / root cause: Social analytics: daily-checkpoint storage has a cap per project so that the per-project index cannot grow indefinitely.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 131. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::SocialAnalyticsCheckpointCapExceeded)));- Meaning / root cause: Social analytics: peer-comparison set requires at least 1 other project in the same category to run a meaningful comparison.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 132. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::SocialAnalyticsNoPeers)));- Meaning / root cause: Social analytics: the export/report endpoint requires at least one checkpoint to produce a "growth over time" report. Callers may run the checkpoint endpoint first.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 133. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::SocialAnalyticsNoCheckpoints)));- Meaning / root cause: Invalid ISO 639-1 language code format (must be exactly 2 lowercase letters).
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 134. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::InvalidLanguageCode)));- Meaning / root cause: Admin has exceeded the monthly veto (rejection) limit (#730).
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 135. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::VetoLimitExceeded)));- Meaning / root cause: Comment on a proposal is not allowed because voting has already started.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 136. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::CommentLocked)));- Meaning / root cause: Emergency recovery request not found.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 137. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::EmergencyRecoveryNotFound)));- Meaning / root cause: Emergency recovery request is not in the pending state.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 138. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::EmergencyRecoveryNotPending)));- Meaning / root cause: Threshold increase requires all admins to approve.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 139. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::ThresholdRequiresUnanimousApproval)));- Meaning / root cause: Caller exceeded the configured per-address rate limit for this operation (issue #945). Wait for the window to reset or ask an admin for a trusted-address override.
- Debugging steps: (1) Reproduce with the exact inputs and note the returned code. (2) Read the on-chain state for the referenced record (project/review/collection id or slug). (3) Check caller auth and admin/owner permissions. (4) Search this catalog and
docs/error-reference.htmlfor code 140. - Resolution: Fix the offending input or permission, then retry the operation.
- Triggering example:
// Any call violating the documented precondition returns this error, e.g.:
let res = client.try_operation(&args);
assert_eq!(res, Err(Ok(ContractError::RateLimitExceeded)));