# ERR BF.EXISTS: Bloom filter 'myfilter' does not exist. Use BF.RESERVE first.

- **ID:** `redis/redisbloom-filter-exists-error`
- **Domain:** redis
- **Category:** module_error
- **Error Code:** `ERR`
- **Verification:** ai_generated
- **Fix Rate:** 95%

## Root Cause

Attempting to query a Bloom filter that has not been created with BF.RESERVE or BF.ADD.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 7.2.0 | active | — | — |
| 7.4.0 | active | — | — |
| 8.0.0 | active | — | — |

## Workarounds

1. **Create the Bloom filter first with desired parameters: BF.RESERVE myfilter 0.01 10000 (error_rate 1%, capacity 10k). Then retry BF.EXISTS.** (95% success)
   ```
   Create the Bloom filter first with desired parameters: BF.RESERVE myfilter 0.01 10000 (error_rate 1%, capacity 10k). Then retry BF.EXISTS.
   ```
2. **If you want auto-creation on first BF.ADD, use BF.ADD myfilter item1 (this creates the filter with default parameters). Then use BF.EXISTS.** (90% success)
   ```
   If you want auto-creation on first BF.ADD, use BF.ADD myfilter item1 (this creates the filter with default parameters). Then use BF.EXISTS.
   ```

## Dead Ends

- **** — Using BF.EXISTS on a non-existent key returns 0 in some older versions, but in strict mode (RedisBloom v2.4+) it raises an error; relying on silent fallback is version-dependent. (60% fail)
- **** — Using EXISTS myfilter only checks if the key exists as a generic key, not if it's a valid Bloom filter; it doesn't solve the type mismatch. (80% fail)
