BerriAI/litellm · error · PredibaseError

'generated_text' is not a key response dictionary - {complet

Error message

'generated_text' is not a key response dictionary - {completion_response}

What it means

Shape guard in the Predibase response transformation: the payload is a dict but lacks the 'generated_text' key that the completions contract expects, so no completion text can be extracted and the payload is surfaced verbatim.

Source

Thrown at litellm/llms/predibase/chat/transformation.py:162

            additional_args={"complete_input_dict": request_data},
        )
        try:
            completion_response: Final = raw_response.json()
        except Exception:
            raise PredibaseError(message=raw_response.text, status_code=422)

        if "error" in completion_response:
            raise PredibaseError(
                message=str(completion_response["error"]),
                status_code=raw_response.status_code,
            )
        elif not isinstance(completion_response, dict):
            raise PredibaseError(
                status_code=422,
                message=f"'completion_response' is not a dictionary - {completion_response}",
            )
        elif "generated_text" not in completion_response:
            raise PredibaseError(
                status_code=422,
                message=f"'generated_text' is not a key response dictionary - {completion_response}",
            )

        if len(completion_response["generated_text"]) > 0:
            model_response.choices[0].message.content = self.output_parser(completion_response["generated_text"])

        if "details" in completion_response and "tokens" in completion_response["details"]:
            model_response.choices[0].finish_reason = map_finish_reason(completion_response["details"]["finish_reason"])
            sum_logprob = 0
            for token in completion_response["details"]["tokens"]:
                if token["logprob"] is not None:
                    sum_logprob += token["logprob"]
            setattr(
                model_response.choices[0].message,
                "_logprob",
                sum_logprob,  # [TODO] move this to using the actual logprobs
            )

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. The response dict lacks 'generated_text'; check the Predibase model output schema.
  2. Use a Predibase deployment whose completion endpoint returns generated_text.

Example fix

# verify the deployment's response format matches the expected completion schema.
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Triggered when the Predibase completion response dictionary lacks the 'generated_text' key.

Common situations: See trigger scenarios.


AI-assisted analysis of BerriAI/litellm@77b7c6c40c (2026-08-18). Data as JSON: /api/errors/6df2b893c7855a8a. Report an issue: GitHub.