Skip to content

Error: Debug Failure. No error for last overload signature #61524

Open
@jens-duttke

Description

@jens-duttke

🔎 Search Terms

The TypeScript compiler crashs with the message "Error: Debug Failure. No error for last overload signature". (Check the DevTools console for the error message in the TypeScript Playground).

I've found issue #60229, which has the same error message. However, I am not sure if the root cause is the same.

🕗 Version & Regression Information

  • The problem appears in the latest nightly version (v5.9.0-dev.20250403)
  • This changed between versions 3.5.1 and 3.6.2 (in the Playground it works in 3.5.1 but not in 3.6.2 anymore)

⏯ Playground Link

https://www.typescriptlang.org/play/?ts=5.9.0-dev.20250403#code/C4TwDgpgBA4hB2EBOBLAxgHgCoD4oF4osoIAPYBAEwGcoBDeEAbQF0oB+Ip+AVwFsARsjYAuLgGsIIAPYAzIiwDcAKGVkw0pMCiye8NMBTT4UCtWAAxeBgCCJclVoAlCGk2UM51PADmAGnpGHBwACmUoKGkBACsxGz9wqDQBMRCU2ARkdAwABTotFDoAG1tggEoCPAYQZQqAb0TZTSgQt3hzKCZJEACAN2K2OSgAeRjXYAA6BGBUCGoQqOiy+sSI5JD+ovpaOERUTBscMpUIgF9lc6A

💻 Code

type Generic<T> = T extends any[] ? T[number] : T[keyof T];

export function testFn<A extends Record<string, any>>(
  obj: A,
  cb: (b: Generic<Partial<A>>) => any
) {
  for (const [key, val] of Object.entries(obj)) {
    cb(val as Generic<A>);
  }
}

🙁 Actual behavior

The compiler crashs with:

Error: Debug Failure. No error for last overload signature
    at resolveCall (M:\websites\app\node_modules\typescript\lib\_tsc.js:75576:19)
    at resolveCallExpression (M:\websites\app\node_modules\typescript\lib\_tsc.js:75970:12)
    at resolveSignature (M:\websites\app\node_modules\typescript\lib\_tsc.js:76398:16)
    at getResolvedSignature (M:\websites\app\node_modules\typescript\lib\_tsc.js:76425:20)
    at checkCallExpression (M:\websites\app\node_modules\typescript\lib\_tsc.js:76533:23)
    at checkExpressionWorker (M:\websites\app\node_modules\typescript\lib\_tsc.js:79950:16)
    at checkExpression (M:\websites\app\node_modules\typescript\lib\_tsc.js:79849:32)
    at checkExpressionCached (M:\websites\app\node_modules\typescript\lib\_tsc.js:79473:28)
    at checkVariableLikeDeclaration (M:\websites\app\node_modules\typescript\lib\_tsc.js:82311:35)
    at checkVariableDeclaration (M:\websites\app\node_modules\typescript\lib\_tsc.js:82407:5)

🙂 Expected behavior

That the compiler does not crash.

Additional information about the issue

Changing

cb: (b: Generic<Partial<A>>) => any

to

cb: (b: Partial<Generic<A>>) => any

prevents the error. However, this only addresses the symptoms rather than the root cause.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugA bug in TypeScriptHelp WantedYou can do this

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions