ZhuLinsen/daily_stock_analysis · error · ValueError

invalid datetime value: {value}

Error message

invalid datetime value: {value}

What it means

Error "invalid datetime value: {value}" thrown in ZhuLinsen/daily_stock_analysis.

Source

Thrown at src/services/decision_signal_service.py:1287

        try:
            return int(value)
        except (TypeError, ValueError) as exc:
            raise ValueError(f"{field_name} must be an integer") from exc

    @staticmethod
    def _parse_datetime(value: Any) -> Optional[datetime]:
        if value in (None, ""):
            return None
        if isinstance(value, datetime):
            return to_utc_naive_datetime(value)
        if isinstance(value, str):
            text = value.strip()
            if not text:
                return None
            try:
                parsed = datetime.fromisoformat(text.replace("Z", "+00:00"))
            except ValueError as exc:
                raise ValueError(f"invalid datetime value: {value}") from exc
            return to_utc_naive_datetime(parsed)
        raise ValueError(f"invalid datetime value: {value}")

    @classmethod
    def _is_expired(cls, expires_at: Optional[datetime]) -> bool:
        normalized_expires_at = cls._parse_datetime(expires_at)
        return normalized_expires_at is not None and normalized_expires_at <= utc_naive_now()

    @staticmethod
    def _json_dumps(value: Any) -> Optional[str]:
        if value in (None, ""):
            return None
        sanitized = sanitize_decision_signal_payload(value)
        return json.dumps(sanitized, ensure_ascii=False, sort_keys=True, default=str)

    @staticmethod
    def _json_loads(value: Optional[str], *, signal_id: int, field_name: str) -> Any:
        if not value:

View on GitHub (pinned to 5159bd72e8)

Solutions

  1. Pass the datetime in ISO 8601 format (e.g. 2024-01-31T09:30:00 or 2024-01-31).
  2. Remove timezone/ambiguity issues by normalizing the value before submission.
  3. Check upstream data for malformed or empty datetime strings and fix the source record.

When it happens

Trigger: Thrown at src/services/decision_signal_service.py:1287 when the library encounters an invalid state.

Common situations: Raised when a datetime field in a decision signal payload cannot be parsed; occurs with malformed ISO dates or wrong types supplied via the API.


AI-assisted analysis of ZhuLinsen/daily_stock_analysis@5159bd72e8 (2026-08-15). Data as JSON: /api/errors/af7670752c3c57eb. Report an issue: GitHub.