Bugify indexes resolved bug fixes, common error patterns, and language documentation into Qdrant collections using 384-dimensional dense semantic embeddings with in-memory fallback.
Simulates dense vector search across Bugify's Qdrant embeddings. Type any error or symptom.
Occurs when a variable expected to hold an object is None. Check all code paths that assign the variable. Ensure database queries handle missing rows using .first() with a None guard. Add defensive None checks or Optional typing with early returns.
KeyError occurs when accessing a dict with a key that does not exist. Prefer dict.get(key, default) for safe access. Use 'if key in dict:' checks before direct bracket access. defaultdict and dict.setdefault are robust alternatives.
Indicates a circular dependency, a renamed module symbol, or a missing package. Check for circular imports by reviewing import cycles. Move imports inside function scope if required, or restructure modules into a shared base layer.
Infinite or deeply nested recursive calls exceed Python default stack limit (1000). Add a base case terminating condition. Prefer converting to iterative loops with while or an explicit stack queue structure.
BaseException → Exception → (ValueError, TypeError, AttributeError, KeyError, IndexError, RuntimeError, OSError). Catching Exception is generally safe. Never catch BaseException silently — it masks SystemExit and KeyboardInterrupt.
Occurs when an operation is applied to incompatible types (e.g., str + int). Use isinstance() checks before operations. Enable strict type annotations with mypy. Consider type coercion at API boundaries.
Ingest your own documentation with python scripts/ingest_knowledge.py