Skip to content

LLM Proxy is not workingย #923

@abrugaro

Description

@abrugaro

The LLM Proxy is not working in konveyor nor in branded environments.

Auth enabled

When konveyors' auth is enabled, I'm able to get completions by getting the token and asking for completions via curl, but from the extension I get the following:

I see the llm proxy being configured:

{"component":"ProfileSyncClient","configUrl":"https://redacted/hub/configmaps/llm-proxy-client/config.json","level":"debug","message":"Fetching LLM proxy configuration","timestamp":"2026-03-05T15:59:18.076Z"}
{"component":"ProfileSyncClient","level":"info","message":"LLM proxy configuration fetched successfully","model":"openai/gpt-4o-mini","timestamp":"2026-03-05T15:59:18.256Z"}
{"component":"ProfileSyncClient","endpoint":"https:/redacted/llm-proxy/v1","level":"info","message":"LLM proxy discovered and available","model":"openai/gpt-4o-mini","timestamp":"2026-03-05T15:59:18.256Z"}
{"component":"HubConnectionManager","level":"info","message":"Successfully connected to Hub profile sync","timestamp":"2026-03-05T15:59:18.256Z"}
{"component":"HubConnectionManager","endpoint":"https:/redacted/llm-proxy/v1","level":"info","message":"LLM proxy available","timestamp":"2026-03-05T15:59:18.257Z"}
{"component":"vscode.commands","level":"info","message":"Syncing profiles from Hub","silent":true,"timestamp":"2026-03-05T15:59:18.257Z"}
{"component":"vscode.commands","level":"debug","message":"Git remotes detected","remotes":[{"fetchUrl":"https://github.com/konveyor-ecosystem/coolstore","name":"origin","pushUrl":"https://github.com/konveyor-ecosystem/coolstore"}],"timestamp":"2026-03-05T15:59:18.257Z"}
{"component":"vscode.commands","currentBranch":"main","level":"info","message":"Detected repository information","remoteName":"origin","remoteUrl":"github.com/konveyor-ecosystem/coolstore","repositoryRoot":"/home/abrugaro/WebstormProjects/editor-extensions/tests/coolstore","timestamp":"2026-03-05T15:59:18.257Z","workspaceRelativePath":"","workspaceRoot":"file:///home/abrugaro/WebstormProjects/editor-extensions/tests/coolstore"}
{"component":"HubConnectionManager","level":"info","message":"Starting profile sync timer, will sync every 300s","timestamp":"2026-03-05T15:59:18.257Z"}
{"level":"info","message":"Hub clients reconnected, updating workflow and model provider","timestamp":"2026-03-05T15:59:18.258Z","tokenRefreshOnly":false}
{"endpoint":"https:/redacted/llm-proxy/v1","hasToken":true,"level":"info","message":"Creating Hub LLM proxy model provider","model":"openai/gpt-4o-mini","timestamp":"2026-03-05T15:59:18.258Z"}

But then when I run a healthcheck I see this:

{"component":"vscode.commands","level":"info","message":"x LLM PROVIDER CONNECTIVITY","timestamp":"2026-03-05T16:03:33.139Z"}
{"component":"vscode.commands","level":"info","message":"  Status: FAIL","timestamp":"2026-03-05T16:03:33.139Z"}
{"component":"vscode.commands","level":"info","message":"  Message: Failed to communicate with LLM provider","timestamp":"2026-03-05T16:03:33.139Z"}
{"component":"vscode.commands","level":"info","message":"  Details:","timestamp":"2026-03-05T16:03:33.139Z"}
{"component":"vscode.commands","level":"info","message":"    Error: Missing credentials. Please pass an `apiKey`, or set the `OPENAI_API_KEY` environment variable.","timestamp":"2026-03-05T16:03:33.139Z"}
{"component":"vscode.commands","level":"info","message":"    ","timestamp":"2026-03-05T16:03:33.139Z"}
{"component":"vscode.commands","level":"info","message":"    Stack trace:","timestamp":"2026-03-05T16:03:33.139Z"}
{"component":"vscode.commands","level":"info","message":"    Error: Missing credentials. Please pass an `apiKey`, or set the `OPENAI_API_KEY` environment variable.","timestamp":"2026-03-05T16:03:33.139Z"}
{"component":"vscode.commands","level":"info","message":"    \tat new Jr (/home/abrugaro/.vscode/extensions/konveyor.konveyor-core-0.6.0-dev.20260302173121.487f9ff/out/extension.js:8:841789)","timestamp":"2026-03-05T16:03:33.139Z"}
{"component":"vscode.commands","level":"info","message":"    \tat bs._getClientOptions (/home/abrugaro/.vscode/extensions/konveyor.konveyor-core-0.6.0-dev.20260302173121.487f9ff/out/extension.js:8:896765)","timestamp":"2026-03-05T16:03:33.139Z"}
{"component":"vscode.commands","level":"info","message":"    \tat bs.completionWithRetry (/home/abrugaro/.vscode/extensions/konveyor.konveyor-core-0.6.0-dev.20260302173121.487f9ff/out/extension.js:8:913375)","timestamp":"2026-03-05T16:03:33.139Z"}
{"component":"vscode.commands","level":"info","message":"    \tat bs._generate (/home/abrugaro/.vscode/extensions/konveyor.konveyor-core-0.6.0-dev.20260302173121.487f9ff/out/extension.js:8:910290)","timestamp":"2026-03-05T16:03:33.139Z"}
{"component":"vscode.commands","level":"info","message":"    \tat e._generate (/home/abrugaro/.vscode/extensions/konveyor.konveyor-core-0.6.0-dev.20260302173121.487f9ff/out/extension.js:8:939824)","timestamp":"2026-03-05T16:03:33.139Z"}
{"component":"vscode.commands","level":"info","message":"    \tat /home/abrugaro/.vscode/extensions/konveyor.konveyor-core-0.6.0-dev.20260302173121.487f9ff/out/extension.js:8:507444","timestamp":"2026-03-05T16:03:33.139Z"}
{"component":"vscode.commands","level":"info","message":"    \tat Array.map (<anonymous>)","timestamp":"2026-03-05T16:03:33.139Z"}
{"component":"vscode.commands","level":"info","message":"    \tat e._generateUncached (/home/abrugaro/.vscode/extensions/konveyor.konveyor-core-0.6.0-dev.20260302173121.487f9ff/out/extension.js:8:507408)","timestamp":"2026-03-05T16:03:33.139Z"}
{"component":"vscode.commands","level":"info","message":"    \tat async e.invoke (/home/abrugaro/.vscode/extensions/konveyor.konveyor-core-0.6.0-dev.20260302173121.487f9ff/out/extension.js:8:504258)","timestamp":"2026-03-05T16:03:33.139Z"}
{"component":"vscode.commands","level":"info","message":"    \tat async c.invoke (/home/abrugaro/.vscode/extensions/konveyor.konveyor-core-0.6.0-dev.20260302173121.487f9ff/out/extension.js:2:612538)","timestamp":"2026-03-05T16:03:33.139Z"}
{"component":"vscode.commands","level":"info","message":"    \tat async /home/abrugaro/.vscode/extensions/konveyor.konveyor-core-0.6.0-dev.20260302173121.487f9ff/out/extension.js:2:437940","timestamp":"2026-03-05T16:03:33.139Z"}
{"component":"vscode.commands","level":"info","message":"    \tat async a (/home/abrugaro/.vscode/extensions/konveyor.konveyor-core-0.6.0-dev.20260302173121.487f9ff/out/extension.js:2:424165)","timestamp":"2026-03-05T16:03:33.139Z"}
{"component":"vscode.commands","level":"info","message":"    \tat async M (/home/abrugaro/.vscode/extensions/konveyor.konveyor-core-0.6.0-dev.20260302173121.487f9ff/out/extension.js:2:439287)","timestamp":"2026-03-05T16:03:33.139Z"}
{"component":"vscode.commands","level":"info","message":"    \tat async /home/abrugaro/.vscode/extensions/konveyor.konveyor-core-0.6.0-dev.20260302173121.487f9ff/out/extension.js:8:1566925","timestamp":"2026-03-05T16:03:33.139Z"}

This makes the UI show an empty screen when requesting a fix

Image

Auth disabled

With the auth disabled, when I try to connect to the llm proxy I get the following

{"component":"ProfileSyncClient","level":"info","message":"LLM proxy configuration fetched successfully","model":"openai/gpt-4o-mini","timestamp":"2026-03-06T09:03:14.808Z"}
{"component":"ProfileSyncClient","endpoint":"https:/redacted/llm-proxy/v1","level":"info","message":"LLM proxy discovered and available","model":"openai/gpt-4o-mini","timestamp":"2026-03-06T09:03:14.808Z"}
{"component":"HubConnectionManager","level":"info","message":"Successfully connected to Hub profile sync","timestamp":"2026-03-06T09:03:14.808Z"}
{"component":"HubConnectionManager","endpoint":"https:/redacted/llm-proxy/v1","level":"info","message":"LLM proxy available","timestamp":"2026-03-06T09:03:14.808Z"}
{"component":"vscode.commands","level":"info","message":"Syncing profiles from Hub","silent":true,"timestamp":"2026-03-06T09:03:14.808Z"}
{"component":"vscode.commands","level":"debug","message":"Git remotes detected","remotes":[{"fetchUrl":"https://github.com/konveyor-ecosystem/coolstore","name":"origin","pushUrl":"https://github.com/konveyor-ecosystem/coolstore"}],"timestamp":"2026-03-06T09:03:14.809Z"}
{"component":"vscode.commands","currentBranch":"main","level":"info","message":"Detected repository information","remoteName":"origin","remoteUrl":"github.com/konveyor-ecosystem/coolstore","repositoryRoot":"/home/abrugaro/WebstormProjects/editor-extensions/tests/coolstore","timestamp":"2026-03-06T09:03:14.809Z","workspaceRelativePath":"","workspaceRoot":"file:///home/abrugaro/WebstormProjects/editor-extensions/tests/coolstore"}
{"component":"HubConnectionManager","level":"info","message":"Starting profile sync timer, will sync every 300s","timestamp":"2026-03-06T09:03:14.809Z"}
{"level":"info","message":"Hub clients reconnected, updating workflow and model provider","timestamp":"2026-03-06T09:03:14.809Z","tokenRefreshOnly":false}
{"component":"vscode.commands","level":"info","message":"Syncing profiles","repoInfo":{"currentBranch":"main","remoteUrl":"github.com/konveyor-ecosystem/coolstore","repositoryRoot":"/home/abrugaro/WebstormProjects/editor-extensions/tests/coolstore","workspaceRelativePath":""},"syncDir":"/home/abrugaro/WebstormProjects/editor-extensions/tests/coolstore/.konveyor/profiles","timestamp":"2026-03-06T09:03:14.809Z"}
{"component":"ProfileSyncClient","currentBranch":"main","level":"info","message":"Starting profile sync","remoteUrl":"github.com/konveyor-ecosystem/coolstore","repositoryRoot":"/home/abrugaro/WebstormProjects/editor-extensions/tests/coolstore","timestamp":"2026-03-06T09:03:14.809Z","workspaceRelativePath":""}
{"component":"ProfileSyncClient","level":"info","message":"Searching for Hub application","normalizedUrl":"github.com/konveyor-ecosystem/coolstore","timestamp":"2026-03-06T09:03:14.809Z","urlVariationsToMatch":["github.com/konveyor-ecosystem/coolstore","github.com/konveyor-ecosystem/coolstore.git","ssh://git@github.com/konveyor-ecosystem/coolstore","ssh://git@github.com/konveyor-ecosystem/coolstore.git","https://github.com/konveyor-ecosystem/coolstore","https://github.com/konveyor-ecosystem/coolstore.git","http://github.com/konveyor-ecosystem/coolstore","http://github.com/konveyor-ecosystem/coolstore.git","git://github.com/konveyor-ecosystem/coolstore","git://github.com/konveyor-ecosystem/coolstore.git","git@github.com:konveyor-ecosystem/coolstore","git@github.com:konveyor-ecosystem/coolstore.git"]}
{"component":"ProfileSyncClient","level":"debug","message":"Fetching all applications from Hub","timestamp":"2026-03-06T09:03:14.809Z","url":"https:/redacted/hub/applications"}
{"level":"error","message":"Failed to update model provider No bearer token available for Hub LLM proxy authentication","stack":"Error: No bearer token available for Hub LLM proxy authentication\n\tat Gd.createHubProxyModelProvider (/home/abrugaro/.vscode/extensions/konveyor.konveyor-core-0.6.0-dev.20260306030400.81d2ea7/out/extension.js:8:1772367)\n\tat Su.onWorkflowDisposal (/home/abrugaro/.vscode/extensions/konveyor.konveyor-core-0.6.0-dev.20260306030400.81d2ea7/out/extension.js:8:1755460)\n\tat Su.connect (/home/abrugaro/.vscode/extensions/konveyor.konveyor-core-0.6.0-dev.20260306030400.81d2ea7/out/extension.js:8:1701726)\n\tat process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n\tat async Su.updateConfig (/home/abrugaro/.vscode/extensions/konveyor.konveyor-core-0.6.0-dev.20260306030400.81d2ea7/out/extension.js:8:1697853)\n\tat async UPDATE_HUB_CONFIG (/home/abrugaro/.vscode/extensions/konveyor.konveyor-core-0.6.0-dev.20260306030400.81d2ea7/out/extension.js:8:1578371)\n\tat async /home/abrugaro/.vscode/extensions/konveyor.konveyor-core-0.6.0-dev.20260306030400.81d2ea7/out/extension.js:8:1595758\n\tat async ef.value (/home/abrugaro/.vscode/extensions/konveyor.konveyor-core-0.6.0-dev.20260306030400.81d2ea7/out/extension.js:8:1595667)","timestamp":"2026-03-06T09:03:14.810Z"}

Metadata

Metadata

Assignees

No one assigned

    Labels

    blockerbugSomething isn't working

    Type

    Projects

    Status

    ๐Ÿ†• New

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions