fix: log only on system api key failures (#13968)

Removes sentry flooding of unnecessary rubyllm logs of wrong API key.
Logs only system api key error since it would be P0.

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Aakash Bakhle
2026-04-09 18:04:52 +05:30
committed by GitHub
parent f1da7b8afa
commit f13f3ba446
8 changed files with 109 additions and 20 deletions

View File

@@ -258,6 +258,18 @@ RSpec.describe Captain::BaseTaskService do
expect(result[:error]).to eq('API Error')
expect(result[:request_messages]).to eq(messages)
end
it 'does not track exceptions for account hook failures' do
create(:integrations_hook, :openai, account: account, settings: { 'api_key' => 'hook-key' })
expect(Llm::Config).to receive(:with_api_key).with('hook-key', api_base: anything).and_raise(error)
expect(ChatwootExceptionTracker).not_to receive(:new)
result = service.send(:make_api_call, model: model, messages: messages)
expect(result[:error]).to eq('API Error')
expect(result[:request_messages]).to eq(messages)
end
end
describe '#api_key' do
@@ -276,6 +288,16 @@ RSpec.describe Captain::BaseTaskService do
expect(service.send(:api_key)).to eq('test-key')
end
end
context 'when no API key is configured' do
before do
InstallationConfig.find_by(name: 'CAPTAIN_OPEN_AI_API_KEY')&.destroy
end
it 'returns nil' do
expect(service.send(:api_key)).to be_nil
end
end
end
describe '#prompt_from_file' do