Repository: promptfoo/promptfoo
Issue: Unfixed case number in red teaming test
Root cause: Algorithmic Error

**Describe the bug**
 I ran a red teaming test several times using the same configuration, but the case number count was different each time. Why is that?

I've noticed that the indirect prompt injection plugin sometimes misses a case, has only 9 cases.

<img width="2960" height="1238" alt="Image" src="https://github.com/user-attachments/assets/e78675d0-0f10-40c7-b9e4-3dcb95000e4d" />

<img width="1510" height="720" alt="Image" src="https://github.com/user-attachments/assets/ace9ea5c-bc9d-4d98-b24c-d2f6526f0c14" />

**To Reproduce**
Steps to reproduce the behavior, including example Promptfoo configurations if applicable:

```
# yaml-language-server: $schema=https://promptfoo.dev/config-schema.json
description: xxxxx
targets:
  - id: file:///xxxxxx.py
    config:
      verbose: true
      delay: 0
    label: magic_call
    delay: 1000
prompts:
  - 'You are a helpful assistant. User query: {{ prompt }}'
redteam:
  purpose: |-
    Application Purpose:
    ```
    xxxxxxxxxxxxxxxxxxxx
    ```
  plugins:
    - id: ascii-smuggling  # Tests vulnerability to Unicode tag-based instruction smuggling attacks
    - id: indirect-prompt-injection  # Tests for injection vulnerabilities via untrusted variables
      config:
        indirectInjectionVar: injection
    - id: prompt-extraction  # Tests for system prompt disclosure vulnerabilities
      config:
        indirectInjectionVar: injection
        systemPrompt: xxxxxxxxxxxxxx
    - id: harmful  # Tests handling of malicious content across multiple categories
    - id: pii:api-db  # Tests for PII exposure via API/database access
    - id: pii:direct  # Tests for direct PII exposure vulnerabilities
    - id: pii:session  # Tests for PII exposure in session data
    - id: pii:social  # Tests for PII exposure via social engineering
    - id: harmful:privacy  # Tests handling of privacy violation attempts
    - id: cross-session-leak  # Tests for information leakage between user sessions
    - id: harmful:misinformation-disinformation  # Tests handling of false information campaigns
    - id: harmful:hate  # Tests handling of hate speech and discriminatory content
    - id: bias:age  # Age-related bias detection
    - id: bias:disability  # Disability-related bias detection
    - id: bias:gender  # Gender-related bias detection
    - id: bias:race  # Race-related bias detection
    - id: harmful:radicalization  # Tests handling of extremist content and recruitment
    - id: harmful:specialized-advice  # Tests handling of unauthorized professional advice
    - id: shell-injection  # Tests for command injection vulnerabilities
    - id: sql-injection  # Tests for SQL injection vulnerabilities
    - id: ssrf  # Tests for server-side request forgery vulnerabilities
    - id: debug-access  # Tests for exposed debugging interfaces and commands
    - id: excessive-agency  # Tests for unauthorized actions beyond defined system boundaries
    - id: rbac  # Tests role-based access control implementation
    - id: bfla  # Tests for broken function-level authorization vulnerabilities (OWASP API 5)
    - id: bola  # Tests for broken object-level authorization vulnerabilities (OWASP API 1)
    - id: hallucination  # Tests for fabrication of false or misleading information
    - id: overreliance  # Tests for overreliance on system assumptions
    - id: divergent-repetition  # Tests for training data leaks through repetitive pattern exploitation that causes model divergence
    - id: reasoning-dos  # Tests for vulnerabilities to computational resource exhaustion through excessive reasoning patterns
  strategies: []
  numTests: 10
  maxConcurrency: 10
defaultTest:
  vars: {}
  options:
    transformVars: '{ ...vars, sessionId: context.uuid }'

```

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**System information:**

If possible, please output the results of `promptfoo debug` and paste the output here.

- Promptfoo version:

**Additional context**
Add any other context about the problem here.