{"record":{"id":"0625562094913d4c","repo":"BerriAI/litellm","slug":"mavvrik-focus-frequency-frequency-is-not-suppo","errorCode":null,"errorMessage":"MAVVRIK_FOCUS_FREQUENCY='{frequency}' is not supported. Only 'daily' is allowed -- the Mavvrik ingestion protocol stores one file per calendar date (metrics/YYYY-MM-DD). Hourly or interval exports would overwrite each other within the same day.","messagePattern":"MAVVRIK_FOCUS_FREQUENCY='(.+?)' is not supported\\. Only 'daily' is allowed -- the Mavvrik ingestion protocol stores one file per calendar date \\(metrics/YYYY-MM-DD\\)\\. Hourly or interval exports would overwrite each other within the same day\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/integrations/mavvrik_focus/mavvrik_focus_logger.py","lineNumber":89,"sourceCode":"\n\ndef _is_empty_metrics_marker(marker: object | None) -> bool:\n    if marker is None:\n        return True\n    if isinstance(marker, (int, float)):\n        return marker == 0\n    if isinstance(marker, str):\n        return not marker.strip()\n    return False\n\n\nclass MavvrikFocusLogger(FocusLogger):\n    \"\"\"FOCUS-based export logger that routes to the Mavvrik destination.\"\"\"\n\n    def __init__(self, **kwargs: Any) -> None:\n        frequency: Final = os.getenv(\"MAVVRIK_FOCUS_FREQUENCY\", \"daily\").lower()\n        if frequency != \"daily\":\n            raise ValueError(\n                f\"MAVVRIK_FOCUS_FREQUENCY='{frequency}' is not supported. \"\n                \"Only 'daily' is allowed -- the Mavvrik ingestion protocol stores one \"\n                \"file per calendar date (metrics/YYYY-MM-DD). Hourly or interval \"\n                \"exports would overwrite each other within the same day.\"\n            )\n        super().__init__(\n            provider=\"mavvrik\",\n            export_format=\"csv\",\n            frequency=\"daily\",\n            prefix=\"mavvrik_focus_exports\",\n            destination_config={\n                \"api_key\": os.getenv(\"MAVVRIK_API_KEY\"),\n                \"api_endpoint\": os.getenv(\"MAVVRIK_API_ENDPOINT\"),\n                \"connection_id\": os.getenv(\"MAVVRIK_CONNECTION_ID\"),\n            },\n            **kwargs,\n        )\n        raw: Final = os.getenv(\"MAVVRIK_FOCUS_MAX_ROWS\")","sourceCodeStart":71,"sourceCodeEnd":107,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/integrations/mavvrik_focus/mavvrik_focus_logger.py#L71-L107","documentation":"MavvrikFocusLogger reads MAVVRIK_FOCUS_FREQUENCY (default 'daily') and rejects anything except 'daily'. Mavvrik's ingestion protocol expects exactly one FOCUS cost-export CSV per calendar date under metrics/YYYY-MM-DD, so hourly or interval frequencies would overwrite the same file within a day — the restriction is a data-integrity guard, not an arbitrary limitation.","triggerScenarios":"Setting MAVVRIK_FOCUS_FREQUENCY=hourly (or weekly, interval, or any value other than daily — the value is lowercased first, so 'DAILY' is fine); copying a generic FOCUS logger config that supports multiple frequencies into the Mavvrik variant.","commonSituations":"Operators used to LiteLLM's other FOCUS exporters that allow hourly cadence; attempts to increase export granularity for near-real-time cost visibility; leftover experimentation values in env files.","solutions":["Set MAVVRIK_FOCUS_FREQUENCY=daily (or unset it — daily is the default)","If you set it at all, use exactly 'daily'; case-insensitive but no other value is accepted","For finer-grained cost data, use a different exporter/destination that supports it — Mavvrik's storage format cannot","Contact Mavvrik if the one-file-per-day protocol changes and a new frequency is supported"],"exampleFix":"# before\nexport MAVVRIK_FOCUS_FREQUENCY=hourly\n# ValueError: MAVVRIK_FOCUS_FREQUENCY='hourly' is not supported...\n\n# after\nexport MAVVRIK_FOCUS_FREQUENCY=daily  # or simply unset — daily is the default","handlingStrategy":"validation","validationCode":"import os\n\n_FREQUENCY = os.getenv(\"MAVVRIK_FOCUS_FREQUENCY\", \"daily\").lower()\nif _FREQUENCY != \"daily\":\n    raise RuntimeError(\"MAVVRIK_FOCUS_FREQUENCY must be 'daily' or unset\")","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Unset the var unless you explicitly need to pin 'daily'","Validate env-driven feature flags against each integration's supported values at startup"],"tags":["python","mavvrik","focus","configuration","cost-export"],"backgroundTag":null,"analyzedSha":"6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d","analyzedAt":"2026-08-15T07:12:03.035Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}