# Job-Ausnahme: Net::ReadTimeout während der Verwendung eines benutzerdefinierten Tools

**URL:** <https://meta.discourse.org/t/job-exception-net-readtimeout-during-custom-tool-usage/370689>\
**Category:** Support\
**Tags:** ai, ai-bot\
**Created:** [18. Juni 2025 um 13:05 UTC](https://meta.discourse.org/t/job-exception-net-readtimeout-during-custom-tool-usage/370689 "2025-06-18T13:05:26Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![MachineScholar](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/machinescholar/32/424719_2.png) [@MachineScholar](https://meta.discourse.org/u/MachineScholar)\
**Post date:** [18. Juni 2025 um 13:05 UTC](https://meta.discourse.org/t/job-exception-net-readtimeout-during-custom-tool-usage/370689/1 "2025-06-18T13:05:26Z")

</div>

Ich habe ein benutzerdefiniertes Tool eingerichtet, das Perplexity Deep Research verwendet (was einige Minuten dauern kann), und ich glaube, dass dies diesen Fehler verursacht. Gibt es Workarounds, außer ein benutzerdefiniertes Plugin zu erstellen, um das HTTP-Timeout von Discourse AI zu verlängern?

[details=“Rückverfolgung”]

```bash
Message (3 copies reported)

Job exception: Net::ReadTimeout

Backtrace

net-protocol-0.2.2/lib/net/protocol.rb:229:in `rbuf_fill'
net-protocol-0.2.2/lib/net/protocol.rb:199:in `readuntil'
net-protocol-0.2.2/lib/net/protocol.rb:209:in `readline'
net-http-0.6.0/lib/net/http/response.rb:158:in `read_status_line'
net-http-0.6.0/lib/net/http/response.rb:147:in `read_new'
net-http-0.6.0/lib/net/http.rb:2420:in `block in transport_request'
net-http-0.6.0/lib/net/http.rb:2411:in `catch'
net-http-0.6.0/lib/net/http.rb:2411:in `transport_request'
net-http-0.6.0/lib/net/http.rb:2384:in `request'
rack-mini-profiler-4.0.0/lib/patches/net_patches.rb:19:in `block in request_with_mini_profiler'
rack-mini-profiler-4.0.0/lib/mini_profiler/profiling_methods.rb:51:in `step'
rack-mini-profiler-4.0.0/lib/patches/net_patches.rb:18:in `request_with_mini_profiler'
/var/www/discourse/plugins/discourse-ai/lib/personas/tools/tool.rb:222:in `block in send_http_request'
net-http-0.6.0/lib/net/http.rb:1632:in `start'
net-http-0.6.0/lib/net/http.rb:1070:in `start'
/var/www/discourse/plugins/discourse-ai/lib/personas/tools/tool.rb:221:in `send_http_request'
/var/www/discourse/plugins/discourse-ai/lib/personas/tool_runner.rb:740:in `block (3 levels) in attach_http'
/var/www/discourse/plugins/discourse-ai/lib/personas/tool_runner.rb:772:in `in_attached_function'
/var/www/discourse/plugins/discourse-ai/lib/personas/tool_runner.rb:734:in `block (2 levels) in attach_http'
/var/www/discourse/plugins/discourse-ai/lib/personas/tool_runner.rb:171:in `eval'
/var/www/discourse/plugins/discourse-ai/lib/personas/tool_runner.rb:171:in `eval_with_timeout'
/var/www/discourse/plugins/discourse-ai/lib/personas/tool_runner.rb:187:in `invoke'
/var/www/discourse/plugins/discourse-ai/lib/personas/tools/custom.rb:70:in `invoke'
/var/www/discourse/plugins/discourse-ai/lib/personas/bot.rb:267:in `invoke_tool'
/var/www/discourse/plugins/discourse-ai/lib/personas/bot.rb:227:in `process_tool'
/var/www/discourse/plugins/discourse-ai/lib/personas/bot.rb:126:in `block in reply'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:187:in `block (3 levels) in perform_completion!'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:230:in `block (5 levels) in perform_completion!'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:230:in `each'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:230:in `block (4 levels) in perform_completion!'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:221:in `each'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:221:in `block (3 levels) in perform_completion!'
net-protocol-0.2.2/lib/net/protocol.rb:535:in `call_block'
net-protocol-0.2.2/lib/net/protocol.rb:526:in `
'
net-protocol-0.2.2/lib/net/protocol.rb:168:in `read'
net-http-0.6.0/lib/net/http/response.rb:631:in `read_chunked'
net-http-0.6.0/lib/net/http/response.rb:595:in `block in read_body_0'
net-http-0.6.0/lib/net/http/response.rb:588:in `inflater'
net-http-0.6.0/lib/net/http/response.rb:593:in `read_body_0'
net-http-0.6.0/lib/net/http/response.rb:363:in `read_body'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:216:in `block (2 levels) in perform_completion!'
net-http-0.6.0/lib/net/http.rb:2433:in `block in transport_request'
net-http-0.6.0/lib/net/http/response.rb:320:in `reading_body'
net-http-0.6.0/lib/net/http.rb:2430:in `transport_request'
net-http-0.6.0/lib/net/http.rb:2384:in `request'
rack-mini-profiler-4.0.0/lib/patches/net_patches.rb:19:in `block in request_with_mini_profiler'
rack-mini-profiler-4.0.0/lib/mini_profiler/profiling_methods.rb:51:in `step'
rack-mini-profiler-4.0.0/lib/patches/net_patches.rb:18:in `request_with_mini_profiler'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:158:in `block in perform_completion!'
net-http-0.6.0/lib/net/http.rb:1632:in `start'
net-http-0.6.0/lib/net/http.rb:1070:in `start'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:129:in `perform_completion!'
/var/www/discourse/plugins/discourse-ai/lib/completions/llm.rb:374:in `generate'
/var/www/discourse/plugins/discourse-ai/lib/personas/bot.rb:90:in `reply'
/var/www/discourse/plugins/discourse-ai/lib/ai_bot/playground.rb:494:in `reply_to'
/var/www/discourse/plugins/discourse-ai/app/jobs/regular/create_ai_reply.rb:18:in `execute'
/var/www/discourse/app/jobs/base.rb:316:in `block (2 levels) in perform'
rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:303:in `block in perform'
/var/www/discourse/app/jobs/base.rb:299:in `each'
/var/www/discourse/app/jobs/base.rb:299:in `perform'
sidekiq-7.3.9/lib/sidekiq/processor.rb:220:in `execute_job'
sidekiq-7.3.9/lib/sidekiq/processor.rb:185:in `block (4 levels) in process'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:180:in `traverse'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'
/var/www/discourse/lib/sidekiq/discourse_event.rb:6:in `call'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'
/var/www/discourse/lib/sidekiq/pausable.rb:131:in `call'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'
sidekiq-7.3.9/lib/sidekiq/job/interrupt_handler.rb:9:in `call'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'
sidekiq-7.3.9/lib/sidekiq/metrics/tracking.rb:26:in `track'
sidekiq-7.3.9/lib/sidekiq/metrics/tracking.rb:134:in `call'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse'
sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:173:in `invoke'
sidekiq-7.3.9/lib/sidekiq/processor.rb:184:in `block (3 levels) in process'
sidekiq-7.3.9/lib/sidekiq/processor.rb:145:in `block (6 levels) in dispatch'
sidekiq-7.3.9/lib/sidekiq/job_retry.rb:118:in `local'
sidekiq-7.3.9/lib/sidekiq/processor.rb:144:in `block (5 levels) in dispatch'
sidekiq-7.3.9/lib/sidekiq/config.rb:39:in `block in 
sidekiq-7.3.9/lib/sidekiq/processor.rb:139:in `block (4 levels) in dispatch'
sidekiq-7.3.9/lib/sidekiq/processor.rb:281:in `stats'
sidekiq-7.3.9/lib/sidekiq/processor.rb:134:in `block (3 levels) in dispatch'
sidekiq-7.3.9/lib/sidekiq/job_logger.rb:15:in `call'
sidekiq-7.3.9/lib/sidekiq/processor.rb:133:in `block (2 levels) in dispatch'
sidekiq-7.3.9/lib/sidekiq/job_retry.rb:85:in `global'
sidekiq-7.3.9/lib/sidekiq/processor.rb:132:in `block in dispatch'
sidekiq-7.3.9/lib/sidekiq/job_logger.rb:40:in `prepare'
sidekiq-7.3.9/lib/sidekiq/processor.rb:131:in `dispatch'
sidekiq-7.3.9/lib/sidekiq/processor.rb:183:in `block (2 levels) in process'
sidekiq-7.3.9/lib/sidekiq/processor.rb:182:in `handle_interrupt'
sidekiq-7.3.9/lib/sidekiq/processor.rb:182:in `block in process'
sidekiq-7.3.9/lib/sidekiq/processor.rb:181:in `handle_interrupt'
sidekiq-7.3.9/lib/sidekiq/processor.rb:181:in `process'
sidekiq-7.3.9/lib/sidekiq/processor.rb:86:in `process_one'
sidekiq-7.3.9/lib/sidekiq/processor.rb:76:in `run'
sidekiq-7.3.9/lib/sidekiq/component.rb:10:in `watchdog'
sidekiq-7.3.9/lib/sidekiq/component.rb:19:in `block in safe_thread'

```

---

_[View the full topic](https://meta.discourse.org/t/job-exception-net-readtimeout-during-custom-tool-usage/370689)._
