mem0ai/mem0 · error · ValueError
Invalid metadata key '{metadata_key}'. Only letters, numbers
Error message
Invalid metadata key '{metadata_key}'. Only letters, numbers, underscores, nesting via '.', and array wildcards '[*]' are allowed. What it means
Error "Invalid metadata key '{metadata_key}'. Only letters, numbers, underscores, nesting via '.', and array wildcards '[*]' are allowed." thrown in mem0ai/mem0.
Source
Thrown at mem0/vector_stores/oracledb.py:40
logger = logging.getLogger(__name__)
class OutputData(BaseModel):
"""Standard output structure returned from vector operations."""
id: Optional[str]
score: Optional[float]
payload: Optional[Dict[str, Any]]
# Allow letters, digits, underscore, dot, brackets, comma, *, space (for 'to')
METADATA_PATTERN = re.compile(r"[a-zA-Z0-9_\.\[\],\s\*]+")
def _validate_metadata_key(metadata_key: str) -> None:
if not METADATA_PATTERN.fullmatch(metadata_key):
raise ValueError(
f"Invalid metadata key '{metadata_key}'. "
"Only letters, numbers, underscores, nesting via '.', "
"and array wildcards '[*]' are allowed."
)
_SCORE_FROM_DISTANCE = {
"COSINE": lambda d: max(0.0, min(1.0, 1.0 - d)),
"EUCLIDEAN": lambda d: 1.0 / (1.0 + max(0.0, d)),
"EUCLIDEAN_SQUARED": lambda d: 1.0 / (1.0 + math.sqrt(max(0.0, d))),
"HAMMING": lambda d: 1.0 / (1.0 + max(0.0, d)),
"MANHATTAN": lambda d: 1.0 / (1.0 + max(0.0, d)),
"DOT": lambda d: -d,
}
def _convert_distance_to_score(distance: float, metric: str) -> float:
try:View on GitHub (pinned to 001c235229)
Solutions
- Use metadata keys with only letters, numbers, underscores, '.' for nesting, and '[*]' for array wildcards.
When it happens
Trigger: Thrown at mem0/vector_stores/oracledb.py:40 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of mem0ai/mem0@001c235229 (2026-08-15).
Data as JSON: /api/errors/94736f126d797187.
Report an issue: GitHub.