usebruno/bruno · error · Error
Unsupported item type: ${itemType}
Error message
Unsupported item type: ${itemType} What it means
`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.
Source
Thrown at packages/bruno-filestore/src/formats/yml/parseItem.ts:98
return parseGraphQLRequest(ocItem as GraphQLRequest);
case 'grpc':
return parseGrpcRequest(ocItem as GrpcRequest);
case 'websocket':
return parseWebsocketRequest(ocItem as WebSocketRequest);
case 'script':
return parseScript(ocItem as ScriptFile);
case 'app':
return parseApp(ocItem as unknown as AppFile);
case 'folder':
throw new Error('Folder items should be handled separately using parseFolder');
default:
throw new Error(`Unsupported item type: ${itemType}`);
}
} catch (error) {
console.error('Error parsing item:', error);
throw error;
}
};
export default parseItem;
View on GitHub (pinned to 9bdd81c7bd)
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.
Example fix
// before // info: // type: grpc-request // after // info: // type: grpc
Defensive patterns
Strategy: validation
Validate before calling
const SUPPORTED = new Set(['http','graphql','grpc','websocket','script','app']);
function assertSupportedType(t) {
if (!SUPPORTED.has(t)) throw new Error(`Unsupported item type: ${t}`);
} Type guard
const ITEM_TYPES = ['http','graphql','grpc','websocket','script','app'] as const;
type ItemType = typeof ITEM_TYPES[number];
function isItemType(t: unknown): t is ItemType {
return typeof t === 'string' && (ITEM_TYPES as readonly string[]).includes(t);
} Try / catch
try { parseItem(yml); }
catch (e) { if (/Unsupported item type/.test(e.message)) { /* upgrade or rewrite */ } else throw e; } Prevention
- Keep bruno-filestore and the schema packages on compatible versions.
- Re-save items through Bruno after schema upgrades.
When it happens
Trigger: 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.
Common situations: 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.
Related errors
- Invalid item: missing type
- Unsupported item type: ${item.type}
- Failed to parse the file – ensure it is valid JSON or YAML
- Invalid workspace: workspace.yml is malformed
- The Collection file is corrupted
AI-assisted analysis of usebruno/bruno@9bdd81c7bd (2026-08-13).
Data as JSON: /api/errors/944cf6396b04a557.
Report an issue: GitHub.