# Known Issues and Limitations

> Current FizzBee limitations and known issues, such as error line numbers and unsupported Python features, with workarounds for each.

Canonical: https://fizzbee.io/reference/language/known-issues-and-limitations/
Source: https://github.com/fizzbee-io/fizzbee/blob/main/examples/references/LANGUAGE_REFERENCE.md#known-issues-and-limitations


## Current Limitations

**Line numbers in error messages**: Line numbers may be incorrect in some error messages (known issue, to be fixed)

**Assertions within roles**: Assertions within role definitions are not yet fully supported. Use top-level assertions instead.

**Interactive commands**: Commands requiring interactive input (e.g., `git rebase -i`, `git add -i`) are not supported in model checking context

**Python features not supported**:
- `del` statement
- `import` statement — there is no user-level import; a curated set of
  modules is pre-imported globally. See [Standard Library](/reference/language/standard-library/).
- `is` / `is not` operators (use `==` / `!=` instead)
- Tuple unpacking in `for` loops (`for k, v in dict.items()` fails; use `for k in dict` + `dict[k]`)

**Cross-role function return to `self.*`**: `self.x = otherRole.fn()` crashes. Use a local variable: `result = otherRole.fn()` then `self.x = result`.

For a complete list of gotchas and workarounds, see **[Gotchas and Common Issues](/reference/language/gotchas/)**.

## Workarounds

**For role assertions**: Define assertions at top level and reference role state:

```python
role Server:
    action Init:
        self.value = 0

# ✅ Top-level assertion instead of role assertion
always assertion ServerValuePositive:
    for s in servers:
        if s.value < 0:
            return False
    return True
```

**For complex expressions with fizz functions**: Extract to variables first (see Function Call Syntax Limitations). Assertions are the exception: they can call fizz funcs anywhere.

**For generic collections in state**: Use regular collections with hashable types, or restructure to keep generic collections in local scope
## See also

- [Gotchas and Common Issues](/reference/language/gotchas/)
- [Limitations](/design/tutorials/limitations/)

