The conventions pick-lists route cannot reach the bus

Table of Contents

Found by sweeping every GET route the BFF declares, after the list requests were completed from the protocol. Every route answered or asked for missing parameters, except this one.

1. What is seen

$ curl -b cookies http://127.0.0.1:20802/api/conventions/pick-lists
{"code":"upstream-unavailable","message":"Cannot reach the message bus."}   [503]
real    0m0.045s

The answer is immediate, so this is not a timeout. TransportError is raised by the wire client rather than by a service refusal, and a refusal would have been a 502 with the code, as the missing-member refusals were.

2. What is ruled out

  • The lists answer: calendar_names returns 471 rows, and business_day_convention_types, floating_index_types and payment_frequencies each return rows, all through compass shell.
  • The route shape works: /api/books/pick-lists reads its lists through the same readAll and answers 200 from the same session.
  • A large reply is not the cause: calendar_names list --limit 500 answers 471 rows from the shell.
  • The wire shape is not the cause: the requests now come from the generated table, and none of these six subjects is missing from it.

3. What is left

Either the web service's own NATS credentials may not publish one of the six subjects, or its connection rejects the publish for another reason; the client reports both as a transport error. The next step is the web service's journal at debug level for the failing subject, then a comparison of its publish permissions with the shell's.

It is not the sweep's class, which is why it is captured apart from it.

Emacs 29.3 (Org mode 9.6.15)