The membership is read by its subject #25

Merged
mesh-admin merged 1 commits from fix/the-membership-is-read-by-its-subject into main 2026-10-01 14:22:27 +00:00
+5 -2
View File
@@ -161,8 +161,11 @@ export async function connectNats(
const subjectOfMine = node ? membershipSubject(node, self) : "";
if (subjectOfMine) {
try {
const got = await conn.request(`$JS.API.DIRECT.GET.${ASSIGNMENTS_STREAM}`,
sc.encode(JSON.stringify({ last_by_subj: subjectOfMine })), { timeout: 5_000 });
// The subject-addressed form of a direct get — the stream, then the subject, nothing in
// the body — because that is the one address the mesh grants this account on the
// stream's API; the body form asks the stream's root, which it may not.
const got = await conn.request(`$JS.API.DIRECT.GET.${ASSIGNMENTS_STREAM}.${subjectOfMine}`,
new Uint8Array(0), { timeout: 5_000 });
const status = got.headers?.code ?? 0;
if (status === 0 && got.data.length > 0) {
issued = JSON.parse(sc.decode(got.data)) as Membership;