Skip to content

Accept RFC3339 packet timestamps with numeric offsets and no fractional seconds #181

Description

@n30nex

The packet timestamp parser rejects valid RFC3339 timestamps that have a numeric UTC offset but no fractional seconds. For example 2026-09-28T22:37:55+00:00 and 2026-09-28T18:37:55-04:00 fall through all five layouts and use server receive time; the equivalent fractional form is accepted.

Reproduced against the current internal/ingest/packet.go layouts on accepted dev db30c9b5, and observed during the Pi integration smoke check. time.Parse(time.RFC3339Nano, input) accepts both forms. This is a timestamp-correctness and warning-volume issue; it does not establish a cause of MQTT packet loss or the older counter discrepancy.

A focused fix should accept RFC3339 offsets with and without fractional seconds, retain documented support for timezone-less observer formats and the existing skew policy, and add regression coverage for offset/no-offset, subsecond and invalid inputs. Review separately from the completed queue/route-lock integration.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions