Aglet

Investigate API query parameter encoding

Investigation should connect one local filter to one exact request and result set. Use values that expose escaping, repetition, dates, and empty semantics. Trace the encoder and response mapping while keeping a server default, client serialization bug, and unsupported combination as competing explanations.

Build a useful investigation brief

  1. Create encoding fixtures

    Build cases with spaces, commas, Unicode, dates with offsets, repeated keys, empty values, and an intentionally unsupported combination. Write expected query and result scope before sending. Use synthetic records whose identifiers make overbroad and missing matches obvious.

  2. Trace request construction

    Follow filter state through URL or body encoding, headers, transport, remote parsing, and local result mapping. Save the final safe request and returned identifiers. Compare a known single match with a known empty result to find where interpretation first changes.

  3. Challenge the parser story

    Vary one character, operator, timezone, repeated key, or omitted parameter at a time. Compare behavior across the affected client and a minimal hand-built request. If server defaults and encoder output both explain the result, record the missing contract evidence rather than choosing one.

What to carry forward

The investigation is ready when structured filter, wire query, parser boundary, returned identifiers, and client branch reproduce the mismatch. Recommend a narrow encoder or contract change. Leave unsupported server semantics explicit and do not call a broad result correct by default.

Technical background: RFC Editor reference.

Keep the decision with the work.

Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.

Create an account See the product workflow