{"record":{"id":"944cf6396b04a557","repo":"usebruno/bruno","slug":"unsupported-item-type-itemtype","errorCode":null,"errorMessage":"Unsupported item type: ${itemType}","messagePattern":"Unsupported item type: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/bruno-filestore/src/formats/yml/parseItem.ts","lineNumber":98,"sourceCode":"        return parseGraphQLRequest(ocItem as GraphQLRequest);\n\n      case 'grpc':\n        return parseGrpcRequest(ocItem as GrpcRequest);\n\n      case 'websocket':\n        return parseWebsocketRequest(ocItem as WebSocketRequest);\n\n      case 'script':\n        return parseScript(ocItem as ScriptFile);\n\n      case 'app':\n        return parseApp(ocItem as unknown as AppFile);\n\n      case 'folder':\n        throw new Error('Folder items should be handled separately using parseFolder');\n\n      default:\n        throw new Error(`Unsupported item type: ${itemType}`);\n    }\n  } catch (error) {\n    console.error('Error parsing item:', error);\n    throw error;\n  }\n};\n\nexport default parseItem;\n","sourceCodeStart":80,"sourceCodeEnd":107,"githubUrl":"https://github.com/usebruno/bruno/blob/9bdd81c7bdc57006e5f5ebffb79321a8d979f712/packages/bruno-filestore/src/formats/yml/parseItem.ts#L80-L107","documentation":"`parseItem`'s switch handles `http|graphql|grpc|websocket|script|app` (and explicitly errors on `folder`); any other resolved `itemType` falls through to the default and throws with the offending type. This signals an item of a kind the parser does not recognize.","triggerScenarios":"An item file with `info.type` (or root `type`) set to a value outside the supported set — a typo, a future/legacy type, or an experimental item kind.","commonSituations":"Typo like `htp` or `grpc-request`; a newer Bruno version wrote an item type this older parser can't read; a custom/edited type field; a value copied from a collection manifest into an item file.","solutions":["Correct `info.type` to one of: http, graphql, grpc, websocket, script, app.","Upgrade bruno-filestore to a version that supports the item type you encountered.","Open and re-save the item in a compatible Bruno version to rewrite the type.","Inspect the message's reported `itemType` to find the exact bad value."],"exampleFix":"// before\n//   info:\n//     type: grpc-request\n\n// after\n//   info:\n//     type: grpc","handlingStrategy":"validation","validationCode":"const SUPPORTED = new Set(['http','graphql','grpc','websocket','script','app']);\nfunction assertSupportedType(t) {\n  if (!SUPPORTED.has(t)) throw new Error(`Unsupported item type: ${t}`);\n}","typeGuard":"const ITEM_TYPES = ['http','graphql','grpc','websocket','script','app'] as const;\ntype ItemType = typeof ITEM_TYPES[number];\nfunction isItemType(t: unknown): t is ItemType {\n  return typeof t === 'string' && (ITEM_TYPES as readonly string[]).includes(t);\n}","tryCatchPattern":"try { parseItem(yml); }\ncatch (e) { if (/Unsupported item type/.test(e.message)) { /* upgrade or rewrite */ } else throw e; }","preventionTips":["Keep bruno-filestore and the schema packages on compatible versions.","Re-save items through Bruno after schema upgrades."],"tags":["filestore","yaml","parsing","schema","typescript"],"backgroundTag":null,"analyzedSha":"9bdd81c7bdc57006e5f5ebffb79321a8d979f712","analyzedAt":"2026-08-13T04:09:25.751Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}