feder-cr/Jobs_Applier_AI_Agent_AIHawk · critical · Exception

Failed to get a response from the model after multiple attem

Error message

Failed to get a response from the model after multiple attempts.

What it means

The retrying LLM-callable in utils.py wraps model invocation with exponential backoff. After exhausting all attempts (every attempt raised an exception), it logs 'critical' and raises a generic Exception: no response could be obtained from the model.

Source

Thrown at src/libs/resume_and_cover_builder/utils.py:107

                parsed_reply = self.parse_llmresult(reply)
                LLMLogger.log_request(prompts=messages, parsed_reply=parsed_reply)
                return reply
            except (openai.RateLimitError, HTTPStatusError) as err:
                if isinstance(err, HTTPStatusError) and err.response.status_code == 429:
                    logger.warning(f"HTTP 429 Too Many Requests: Waiting for {retry_delay} seconds before retrying (Attempt {attempt + 1}/{max_retries})...")
                    time.sleep(retry_delay)
                    retry_delay *= 2
                else:
                    wait_time = self.parse_wait_time_from_error_message(str(err))
                    logger.warning(f"Rate limit exceeded or API error. Waiting for {wait_time} seconds before retrying (Attempt {attempt + 1}/{max_retries})...")
                    time.sleep(wait_time)
            except Exception as e:
                logger.error(f"Unexpected error occurred: {str(e)}, retrying in {retry_delay} seconds... (Attempt {attempt + 1}/{max_retries})")
                time.sleep(retry_delay)
                retry_delay *= 2

        logger.critical("Failed to get a response from the model after multiple attempts.")
        raise Exception("Failed to get a response from the model after multiple attempts.")

    def parse_llmresult(self, llmresult: AIMessage) -> Dict[str, Dict]:
        # Parse the LLM result into a structured format.
        content = llmresult.content
        response_metadata = llmresult.response_metadata
        id_ = llmresult.id
        usage_metadata = llmresult.usage_metadata

        parsed_result = {
            "content": content,
            "response_metadata": {
                "model_name": response_metadata.get("model_name", ""),
                "system_fingerprint": response_metadata.get("system_fingerprint", ""),
                "finish_reason": response_metadata.get("finish_reason", ""),
                "logprobs": response_metadata.get("logprobs", None),
            },
            "id": id_,
            "usage_metadata": {

View on GitHub (pinned to 79155b52fa)

Solutions

  1. Check the underlying logs/errors printed for each attempt: they reveal the root cause (auth, quota, network, bad model name).
  2. Fix credentials/rate limits: verify the API key env var and provider quota, or reduce request frequency.
  3. Increase max_retries/backoff for transient outages, and add a circuit breaker or fallback model so the pipeline can continue.

Example fix

# before
result = llm_callable(prompt)  # raises after retries
# after
try:
    result = llm_callable(prompt)
except Exception:
    result = fallback_llm_callable(prompt)  # secondary provider/model
Defensive patterns

Strategy: retry

Validate before calling

import os
assert os.environ.get('OPENAI_API_KEY'), 'missing OPENAI_API_KEY'  # adjust per provider

Try / catch

try:
    result = llm_callable(prompt)
except Exception as e:
    if 'Failed to get a response' in str(e):
        logger.error('LLM unavailable, using fallback')
        result = fallback_llm_callable(prompt)
    else:
        raise

Prevention

When it happens

Trigger: Persistent LLM API failures across all retries: invalid/missing API key, rate limiting that outlasts the backoff window, network outage, or the provider being down.

Common situations: Expired or wrong OPENAI_API_KEY / provider credentials, quota exhausted, flaky network in CI, or a model name that the API rejects on every call.

Related errors


AI-assisted analysis of feder-cr/Jobs_Applier_AI_Agent_AIHawk@79155b52fa (2026-08-28). Data as JSON: /api/errors/13d9b57732aa2a11. Report an issue: GitHub.