Skip to content

Newsletter · Issue #049

The Lookup Said 1.0.1

After this issue, the reader can tell a readable status check from a broken one, and treat a correctly identified older version as observed public state instead of a failure.

Published
Format
Teardown
Reader job
Explain
Length
2 min read
Written by
Victor Solano

A positive control proves your request path works. It does not prove the request pointed at the right thing. Ask this endpoint for app ID 1111111111 and it returns HTTP 200 with resultCount 0. Ask it for 676599, a real ID with two digits chopped off, and it returns the same thing. An empty result is not an app telling you it has not shipped. It is nothing being selected, which is exactly what a typo looks like.

Gate one says the path works. Gate two says you read the app you meant. Only then is the version worth reading.
API=https://itunes.apple.com/lookup
CB=$(date +%s)

# gate 1: does the path work at all?
curl -s "$API?id=310633997&country=us&cb=$CB"

# gate 2: did I read the app I meant?
curl -s "$API?id=6765926991&country=us&cb=$CB" | jq -e '
  .resultCount == 1
  and .results[0].trackId == 6765926991
  and .results[0].trackName == "Sortes: Decision Maker"'
Run in order. The first three decide whether the reading is usable. The fourth is the reading.
GatePasses whenWhat that tells you
Transporta known-live control returns its own recordThe path works. A failure here makes everything below unreadable.
SelectionHTTP 200 and resultCount 1Something was selected. Zero results means nothing was, which is not a negative.
IdentitytrackId and trackName match the request, country explicitly setYou are reading your app. A mismatch means another app or storefront.
Stategates one to three passedThe version returned is the live public state, whatever you expected it to be.

State is not a verdict. At 08:55 CEST today Sortes cleared the first three gates and returned 1.0.1, so 1.0.1 was the live public version at 08:55. Nothing in that response said whether 1.0.2 was late, withdrawn, or never submitted. A second source did: App Store Connect had it approved on a manual release. Its currentVersionReleaseDate now reads 08:58:50 CEST. Hushlayer read 1.0.3 at 07:44, 07:46, and 07:47 yesterday, then 1.0.4 at 07:55.

The rule

Transport, selection, identity, then state. A healthy control clears only the first gate, and an empty result never clears the second. Once the first three pass, the version you get back is the live public state, not a pass or a fail. An older version than you expected is an observation. Turning it into late, withdrawn, or never shipped takes a second source.

An empty result is not a negative.