huggingface/smolagents · error · ValueError

Your code snippet is invalid, because the regex pattern {cod

Error message

Your code snippet is invalid, because the regex pattern {code_block_tags[0]}(.*?){code_block_tags[1]} was not found in it.
Here is your code snippet:
{text}
Make sure to include code with the correct pattern, for instance:
Thoughts: Your thoughts
{code_block_tags[0]}
# Your python code here
{code_block_tags[1]}

What it means

Same parsing path as the previous error but the generic branch: the code-block regex found nothing, the text is not valid Python on its own, and it does not look like a final-answer attempt. The message shows the expected pattern including 'Thoughts:' followed by a fenced code block.

Source

Thrown at src/smolagents/utils.py:238

        return text
    except SyntaxError:
        pass

    if "final" in text and "answer" in text:
        raise ValueError(
            dedent(
                f"""
                Your code snippet is invalid, because the regex pattern {code_block_tags[0]}(.*?){code_block_tags[1]} was not found in it.
                Here is your code snippet:
                {text}
                It seems like you're trying to return the final answer, you can do it as follows:
                {code_block_tags[0]}
                final_answer("YOUR FINAL ANSWER HERE")
                {code_block_tags[1]}
                """
            ).strip()
        )
    raise ValueError(
        dedent(
            f"""
            Your code snippet is invalid, because the regex pattern {code_block_tags[0]}(.*?){code_block_tags[1]} was not found in it.
            Here is your code snippet:
            {text}
            Make sure to include code with the correct pattern, for instance:
            Thoughts: Your thoughts
            {code_block_tags[0]}
            # Your python code here
            {code_block_tags[1]}
            """
        ).strip()
    )


MAX_LENGTH_TRUNCATE_CONTENT = 20000

View on GitHub (pinned to 30bb116109)

Solutions

  1. Retry with the error fed back so the model adds a proper ```python block
  2. Verify the model uses markdown code fences; switch templates or models if not
  3. Increase max_tokens to avoid truncation before the code block

Example fix

# before (model output)
Thought: I'll compute it. result = 6*7  # no code block

# after
Thought: I'll compute it.
```python
result = 6*7
```
Defensive patterns

Strategy: retry

Validate before calling

import re
def has_code_block(text: str) -> bool:
    return bool(re.search(r'```\w*\n.*?```', text, re.DOTALL))

Type guard

def is_parseable_step(text: str) -> bool:
    import ast, re
    try:
        ast.parse(text)
        return True
    except SyntaxError:
        return has_code_block(text)

Try / catch

try:
    code = parse_code_blobs(text)
except ValueError:
    # re-prompt with the error text; the included example pattern is the fix instruction
    raise

Prevention

When it happens

Trigger: Model output contains neither a parseable code block nor valid bare Python — e.g. only thoughts, or code without the required fence tags.

Common situations: Models omitting markdown fences, using wrong fence language tags, or truncating before the code block; templates mismatched to model dialect.

Related errors


AI-assisted analysis of huggingface/smolagents@30bb116109 (2026-08-28). Data as JSON: /api/errors/1d08fa6aa868f1f0. Report an issue: GitHub.