{"record":{"id":"e4805101c3c02adf","repo":"hyperledger/fabric","slug":"errchannelnotexist","errorCode":"ErrChannelNotExist","errorMessage":"channel does not exist","messagePattern":"channel does not exist","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"orderer/common/types/errors.go","lineNumber":28,"sourceCode":"\n// ErrSystemChannelExists is returned when trying to join or remove an application channel when the system channel exists.\n//\n// Deprecated: system channel no longer supported\nvar ErrSystemChannelExists = errors.New(\"system channel exists\")\n\n// ErrSystemChannelNotSupported is returned when trying to join with a system channel config block.\nvar ErrSystemChannelNotSupported = errors.New(\"system channel not supported\")\n\n// ErrChannelAlreadyExists is returned when trying to join a app channel that already exists (when the system channel does not\n// exist), or when trying to join the system channel when it already exists.\nvar ErrChannelAlreadyExists = errors.New(\"channel already exists\")\n\n// ErrAppChannelsAlreadyExists is returned when trying to join a system channel (that does not exist) when application channels\n// already exist.\nvar ErrAppChannelsAlreadyExists = errors.New(\"application channels already exist\")\n\n// ErrChannelNotExist is returned when trying to remove or list a channel that does not exist\nvar ErrChannelNotExist = errors.New(\"channel does not exist\")\n\n// ErrChannelPendingRemoval is returned when trying to remove or list a channel that is being removed.\nvar ErrChannelPendingRemoval = errors.New(\"channel pending removal\")\n\n// ErrChannelRemovalFailure is returned when a removal attempt failure has been recorded.\nvar ErrChannelRemovalFailure = errors.New(\"channel removal failure\")\n\n// ErrChannelNotReady is returned when trying to update a channel that is a follower\nvar ErrChannelNotReady = errors.New(\"channel is not ready, he is a follower\")\n","sourceCodeStart":10,"sourceCodeEnd":38,"githubUrl":"https://github.com/hyperledger/fabric/blob/2736b63f8fd5932511d56fe68b7039d15977f7f6/orderer/common/types/errors.go#L10-L38","documentation":"ErrChannelNotExist is returned when attempting to remove, update, or get info for a channel that the orderer does not know — it was never joined or has been removed. BroadcastChannelSupport and ChannelInfo also surface it; REST handlers map removal/update failures accordingly.","triggerScenarios":"DELETE /participation/v1/channels/<id> or PUT (update) for a channelID never joined on this orderer; osnadmin remove/update against a channel that exists on other orderers but not this one.","commonSituations":"Typo in channelID; channel joined on some orderers only (consenter set mismatch); channel already removed; running remove before join in scripts.","solutions":["List channels on that orderer ('osnadmin channel list') to confirm the channelID exists","Fix the channelID spelling in the osnadmin command","Join the channel first if it was never joined on this orderer","For update (consenter change), join the channel with the new config block instead of updating a non-joined channel"],"exampleFix":"// before\nosnadmin channel remove --channelID mychanel  # typo: channel does not exist\n// after\nosnadmin channel list\nosnadmin channel remove --channelID mychannel","handlingStrategy":"try-catch","validationCode":"info, err := client.ListChannels()\nexists := slices.Contains(info.Channels, targetChannelID)\nif !exists { /* join first or fix channelID */ }","typeGuard":null,"tryCatchPattern":"if errors.Is(err, types.ErrChannelNotExist) {\n    // channel never joined on this orderer; join it or correct the ID\n}","preventionTips":["Verify channelID spelling against 'osnadmin channel list'","Ensure the channel is joined on every orderer intended to serve it","Order automation: join before update/remove"],"tags":["fabric","orderer","channel-participation","not-found","http-404"],"backgroundTag":"channel-not-found","analyzedSha":"2736b63f8fd5932511d56fe68b7039d15977f7f6","analyzedAt":"2026-09-04T08:52:36.465Z","contentChangedAt":"2026-09-04T08:52:36.465Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}