{"record":{"id":"7f3e9cd7e8009c3f","repo":"Foundry376/Mailspring","slug":"unable-to-parse-query","errorCode":null,"errorMessage":"Unable to parse query","messagePattern":"Unable to parse query","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/src/services/search/search-query-parser.ts","lineNumber":373,"sourceCode":"\nconst parseQuery = (text: string) => {\n  return parseAndQuery(text);\n};\n\nconst parseQueryWrapper = (text: string) => {\n  let currText = text;\n  const exps = [];\n  while (currText.length > 0) {\n    const [result, leftover] = parseQuery(currText);\n    if (result === null) {\n      break;\n    }\n    exps.push(result);\n    currText = leftover;\n  }\n\n  if (exps.length === 0) {\n    throw new Error('Unable to parse query');\n  }\n\n  let result: QueryExpression = null;\n  for (let i = exps.length - 1; i >= 0; --i) {\n    if (result === null) {\n      result = exps[i];\n    } else {\n      result = new AndQueryExpression(exps[i], result);\n    }\n  }\n  return result;\n};\n\nexport class SearchQueryParser {\n  static parse(query: string) {\n    return parseQueryWrapper(query);\n  }\n}","sourceCodeStart":355,"sourceCodeEnd":391,"githubUrl":"https://github.com/Foundry376/Mailspring/blob/648c685d602ece6bb00c22534b8734de6ac644b3/app/src/services/search/search-query-parser.ts#L355-L391","documentation":"Top-level parse failure in parseQueryWrapper: the recursive-descent parser consumed no query expression at all from the input. Fires for empty/whitespace-only queries or input that matches no grammar rule from the very first token.","triggerScenarios":"Thrown at app/src/services/search/search-query-parser.ts:373 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Enter a non-empty search query","Use supported syntax: field:value terms (from:, to:, subject:, in:, is:, has:), quoted strings, and AND/OR/NOT parenthesized groups"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"648c685d602ece6bb00c22534b8734de6ac644b3","analyzedAt":"2026-09-03T02:00:24.311Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-10T07:17:11.731Z"}