ScrapeGraphAI/Scrapegraph-ai · error · AnalysisError
Execution analysis failed: {str(e)}
Error message
Execution analysis failed: {str(e)} What it means
Raised by execution_focused_analysis when the LLM chain fails for any non-KeyError reason; the original exception text is embedded in 'Execution analysis failed: ...'. Root cause is almost always the llm_model invocation or prompt rendering, not the state.
Source
Thrown at scrapegraphai/utils/code_error_analysis.py:211
template=get_optimal_analysis_template("execution"),
input_variables=["generated_code", "errors", "html_code", "html_analysis"],
)
chain = prompt | llm_model | StrOutputParser()
# Execute chain with validated state
return chain.invoke(
{
"generated_code": validated_state.generated_code,
"errors": validated_state.errors["execution"],
"html_code": validated_state.html_code,
"html_analysis": validated_state.html_analysis,
}
)
except KeyError as e:
raise InvalidStateError(f"Missing required key in state dictionary: {e}")
except Exception as e:
raise AnalysisError(f"Execution analysis failed: {str(e)}")
def validation_focused_analysis(state: Dict[str, Any], llm_model) -> str:
"""
Analyzes the validation errors in the generated code based on a JSON schema.
Args:
state (dict): Contains the 'generated_code', 'errors',
'json_schema', and 'execution_result'.
llm_model: The language model used for generating the analysis.
Returns:
str: The result of the validation error analysis.
Raises:
InvalidStateError: If state is missing required keys.
Example:View on GitHub (pinned to 532dfffbf6)
Solutions
- Read the embedded str(e) to identify auth/network/template cause
- Test llm_model.invoke('ping') independently
- Verify the execution analysis template variables match what the code supplies
- Retry after resolving transient provider issues (rate limit, timeout)
Defensive patterns
Strategy: retry
Validate before calling
# smoke-test the model first
try:
llm_model.invoke("ping")
except Exception:
raise RuntimeError("llm_model not usable; fix credentials/connectivity") Try / catch
from scrapegraphai.utils.code_error_analysis import AnalysisError
for attempt in range(3):
try:
analysis = execution_focused_analysis(state, llm_model)
break
except AnalysisError as e:
if attempt == 2 or "auth" in str(e).lower():
raise
time.sleep(2 ** attempt) Prevention
- Read str(e) to classify auth vs network vs rate limit
- Use backoff retries only for transient provider errors
- Verify provider API key is set in the environment
When it happens
Trigger: execution_reasoning_loop / execution_focused_analysis(state, llm_model) with invalid API credentials, network failure to the LLM provider, rate limiting, or a prompt template/input_variables mismatch for the 'execution' template.
Common situations: Expired API key, provider outage, proxy/firewall blocking the endpoint, langchain PromptTemplate variable mismatch after upgrading scrapegraphai/langchain.
Related errors
- Syntax analysis failed: {str(e)}
- Validation analysis failed: {str(e)}
- Semantic analysis failed: {str(e)}
- Syntax code generation failed: {str(e)}
- Execution code generation failed: {str(e)}
AI-assisted analysis of ScrapeGraphAI/Scrapegraph-ai@532dfffbf6 (2026-08-28).
Data as JSON: /api/errors/2936703debfa14c7.
Report an issue: GitHub.