bug(ingest): telemetry without a time field is rejected with 400

オープン
#478 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
68/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
python
領域
api, backend

調査の方向性

Start by tracing the ingest serializer that requires telemetry.time and the telemetry models that determine whether the reading time can be null. Check how rx_time or the observation time is handled for other telemetry fields. Done means packets without time are stored using an allowed fallback or null, and the endpoint no longer rejects them with HTTP 400.

索引モデルが issue の本文から書いたものです。

説明

bug

Problem

The ingest endpoint rejects some telemetry packets with HTTP 400 {"decoded":{"telemetry":{"time":["This field is required."]}}}. Feeders hit this about once an hour. In pre-prod on 2026-11-04, PDYt and PDYb both got it on the same packet at 08:35:06, and there were 12 earlier occurrences the same day. The packet is dropped, so the telemetry is lost.

Meshtastic doesn't guarantee telemetry.time: a node without a valid clock sends 0 or omits it. The serializer makes it required.

Expected

A telemetry packet without time is stored. Use the packet's rx_time (or the observation's) as the reading time, or leave it null, whichever the telemetry models allow. It must not be rejected.

Notes

  • Seen on main before the Meshtastic 2.8 work. It's not a regression.
  • The bot logs it as StorageAPI.store_raw_packet - HTTP error storing packet.
  • Related: #436 (ingest correctness review).
主要言語
Python
スター
1
フォーク
0
平均マージ
23時間 9分
マージ済み PR(30日)
15

環境構築

  • Dockerfile または Docker Compose ファイルあり
  • プルリクエストのテンプレートあり
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

pskillen/meshflow-api のほかの issue

pskillen/meshflow-api の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。