[Bug]: treesitter.lua:124: str: expected string, got nil
codewiz opened this issue · comments
Your minimal.lua
config
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end
-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"--single-branch",
"https://github.com/folke/lazy.nvim.git",
lazypath,
})
end
vim.opt.runtimepath:prepend(lazypath)
-- Your CodeCompanion setup
local plugins = {
{
"olimorris/codecompanion.nvim",
dependencies = {
{ "nvim-treesitter/nvim-treesitter", build = ":TSUpdate"},
"nvim-lua/plenary.nvim",
"nvim-telescope/telescope.nvim",
{
"stevearc/dressing.nvim",
opts = {},
},
},
config = function()
require("codecompanion").setup({
strategies = { -- Change the adapters as required
chat = "openai",
inline = "openai",
},
})
end,
}
}
require("lazy").setup(plugins, {
root = root .. "/plugins",
})
-- setup treesitter
local ok, treesitter = pcall(require, "nvim-treesitter.configs")
if ok then
treesitter.setup({
ensure_installed = "all",
ignore_install = { "phpdoc" }, -- list of parser which cause issues or crashes
highlight = { enable = true },
})
end
Error messages
Error detected while processing User Autocommands for "CodeCompanionRequest":
Error executing lua callback: /usr/share/nvim/runtime/lua/vim/treesitter.lua:124: str: expected string, got nil
stack traceback:
[C]: in function 'error'
vim/shared.lua: in function 'validate'
/usr/share/nvim/runtime/lua/vim/treesitter.lua:124: in function 'get_string_parser'
...codecompanion.nvim/lua/codecompanion/strategies/chat.lua:246: in function 'run_tools'
...codecompanion.nvim/lua/codecompanion/strategies/chat.lua:599: in function '_user_on_exit'
...andelwow/.repro/plugins/plenary.nvim/lua/plenary/job.lua:241: in function '_shutdown'
...andelwow/.repro/plugins/plenary.nvim/lua/plenary/job.lua:221: in function 'shutdown'
.../plugins/codecompanion.nvim/lua/codecompanion/client.lua:31: in function <.../plugins/codecompanion.nvim/lua/codecompanion/client.lua:28>
[C]: in function 'nvim_exec_autocmds'
...codecompanion.nvim/lua/codecompanion/strategies/chat.lua:609: in function 'cb'
.../plugins/codecompanion.nvim/lua/codecompanion/client.lua:115: in function ''
vim/_editor.lua: in function <vim/_editor.lua:0>
Health check output
codecompanion: require("codecompanion.health").check()
codecompanion.nvim report ~
- Log file: /home/bernie/.local/state/nvim/codecompanion.log
- OK plenary.nvim installed
- OK nvim-treesitter installed
- OK telescope.nvim installed
- OK dressing.nvim installed
- WARNING edgy.nvim not found
- OK curl installed
- OK base64 installed
Log output
[DEBUG] 2024-05-25 18:15:52
Stream Request: { "-sSL", "-D", "/run/user/1000/plenary_curl_b9c14a5b.headers", "--compressed", "-X", "POST", "-H", "Authorization: Bearer REMOVED", "-H", "Content-Type: application/json", "--data-raw", '{"top_p":1,"temperature":1,"presence_penalty":0,"frequency_penalty":0,"messages":[{"role":"user"}],"model":"gpt-4o","stream":true}', "--no-buffer", "--silent", "https://api.openai.com/v1/chat/completions" }
[DEBUG] 2024-05-25 18:15:52
Couldn't parse JSON: {
[DEBUG] 2024-05-25 18:15:52
Couldn't parse JSON: "error": {
[DEBUG] 2024-05-25 18:15:52
Couldn't parse JSON: "message": "The model `gpt-4o` does not exist or you do not have access to it.",
[DEBUG] 2024-05-25 18:15:52
Couldn't parse JSON: "type": "invalid_request_error",
[DEBUG] 2024-05-25 18:15:52
Couldn't parse JSON: "param": null,
[DEBUG] 2024-05-25 18:15:52
Couldn't parse JSON: "code": "model_not_found"
[DEBUG] 2024-05-25 18:15:52
Couldn't parse JSON: }
[DEBUG] 2024-05-25 18:15:52
Couldn't parse JSON: }
Describe the bug
Calling :CodeCompanionChat
followed by :w
results in the above error.
Tested with nvim built from git head:
NVIM v0.11.0-dev-96+g7994fdba6
Build type: Release
LuaJIT 2.1.1713484068
Also tested with Arch system package:
NVIM v0.10.0
Build type: Release
LuaJIT 2.1.1713773202
Reproduce the bug
/usr/bin/nvim --clean -u minimal.lua
:CodeCompanionChat
:w
Final checks
- I have made sure this issue exists in the latest version of the plugin
- I have tested with the
minimal.lua
config file above and still get the issue
I think the answer lies in your log output:
The model `gpt-4o` does not exist or you do not have access to it.
I've just tried putting in my own API key with your minimal.lua file and it works as expected. Can you access gpt-4o outside of CodeCompanion?
Topping up my OpenAI account with $10 cured the issue :-)
Can we leave this bug open to report API errors in the UI?
I thought I'd handled that damn out of credit error. It got me last time 😆.
I'll try and handle those other errors better. Thanks for raising this.
I did implement a hacky way of detecting an error from OpenAI back in 84597e0. The challenge is that they like to stream the error message back to you rather than just giving it as one full response. This means you have to handle {
then "error": {
then "message": "The model gpt-4o does not exist or you do not have access to it."
etc.
On this occasion, it looks like I should have detected we had an error in the response and not allowed the run_tools
method to be called and then the adapter would have caught the error and displayed it back to you in the UI.
My credit balance is running low (🤑) so I'll keep this issue open until I am confident I've handled it.
Closing this as I have been able to confirm this is now handled.