#[repr(u32)]pub enum FeatureManagementError {
Show 22 variants
Unauthorized = 0,
InvalidFeatureName = 1,
FeatureNotFound = 2,
SerializationError = 3,
DeserializationError = 4,
InvalidInstructionData = 5,
InternalError = 6,
DuplicateFeature = 7,
InvalidStorageAccount = 8,
AlreadyInitialized = 9,
NotInitialized = 10,
MaxFeatureCountExceeded = 11,
TooManyNames = 12,
NoPendingTransfer = 13,
PendingTransferExists = 14,
InvalidTransferTarget = 15,
ScheduleInPast = 16,
ScheduleTooFarOut = 17,
RequestNotFound = 18,
TooManyPendingRequests = 19,
RequestAlreadyExists = 20,
PendingStateTooLarge = 21,
}Expand description
Errors that can be returned by the Feature Management Program
Stable from this commit forward. Discriminants surface as
ProgramError::Custom(u32) over the wire, so reordering or renumbering
silently shifts what external decoders see. Pre-launch this enum has
been compacted to fill the gaps left by the dropped sticky/windowed
variants; from now on, add new variants only at the tail with the next
unused discriminant.
Variants§
Unauthorized access - signature verification failed
InvalidFeatureName = 1
Invalid feature name (empty or too long)
FeatureNotFound = 2
Feature not found
SerializationError = 3
Serialization error
DeserializationError = 4
Deserialization error
InvalidInstructionData = 5
Invalid instruction data
InternalError = 6
Internal error (e.g., mutex lock failure)
DuplicateFeature = 7
Duplicate feature in modification list
InvalidStorageAccount = 8
Invalid storage account (not the expected PDA)
AlreadyInitialized = 9
Storage account already initialized
NotInitialized = 10
Storage account not initialized
MaxFeatureCountExceeded = 11
Maximum feature count exceeded.
TooManyNames = 12
A single Enable instruction submitted more names than
MAX_NAMES_PER_BATCH permits.
NoPendingTransfer = 13
AcceptAuthorityTransfer / CancelAuthorityTransfer invoked while
no transfer is pending.
PendingTransferExists = 14
ProposeAuthorityTransfer invoked while a previous proposal is
still outstanding. Cancel the existing proposal first.
InvalidTransferTarget = 15
ProposeAuthorityTransfer invoked with new_authority equal to the
current authority. Distinct from Unauthorized — the signer IS the
authority; the target of the transfer is degenerate.
ScheduleInPast = 16
ScheduleEnable invoked with a fire_at_ms at or before the current
block time. A schedule must activate in the future; use Enable for
immediate activation.
ScheduleTooFarOut = 17
ScheduleEnable invoked with a fire_at_ms more than
MAX_SCHEDULE_HORIZON_MS past the current block time. Guards against
fat-fingered far-future timestamps (e.g. seconds mistaken for millis).
RequestNotFound = 18
Cancel invoked with a request_id that has no pending entry —
already fired, already cancelled, or never existed.
TooManyPendingRequests = 19
ScheduleEnable invoked while the pending set is already at
MAX_PENDING_REQUESTS. Cancel or let existing schedules fire first.
RequestAlreadyExists = 20
ScheduleEnable invoked with a request_id that already has a pending
entry.
PendingStateTooLarge = 21
ScheduleEnable whose new pending entry would push the serialized
FeaturesState over MAX_FEATURES_STATE_SIZE. The byte budget — not
MAX_PENDING_REQUESTS — is the binding cap once requests carry
non-trivial batches, so this is surfaced explicitly rather than as a
bare SerializationError at save time.
Trait Implementations§
Source§impl Clone for FeatureManagementError
impl Clone for FeatureManagementError
Source§fn clone(&self) -> FeatureManagementError
fn clone(&self) -> FeatureManagementError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FeatureManagementError
impl Debug for FeatureManagementError
impl Eq for FeatureManagementError
Source§impl From<FeatureManagementError> for ProgramError
impl From<FeatureManagementError> for ProgramError
Source§fn from(e: FeatureManagementError) -> Self
fn from(e: FeatureManagementError) -> Self
Source§impl From<FeatureManagementError> for InstructionError
impl From<FeatureManagementError> for InstructionError
Source§fn from(e: FeatureManagementError) -> Self
fn from(e: FeatureManagementError) -> Self
Source§impl PartialEq for FeatureManagementError
impl PartialEq for FeatureManagementError
Source§fn eq(&self, other: &FeatureManagementError) -> bool
fn eq(&self, other: &FeatureManagementError) -> bool
self and other values to be equal, and is used by ==.