Establish the baseline
Run both clients with the same topic until the subscriber prints three readings. Record the topic and the sequence numbers. Use this successful run as the baseline for each experiment. Do not combine failures until you can explain each one separately. If the relay is unavailable, complete the local filter check and the supplied permission scenario. Record those as local or written exercises, not as successful live tests.Experiment 1: the topic differs
- Stop the subscriber with Ctrl+C.
- Restart it with
--topic academy/alice/humidity. - Keep the publisher on
academy/alice/temperature. - Compare both command lines and the publisher’s output.
- Restart the subscriber with the original temperature topic.
Explanation and local alternative
Explanation and local alternative
The topic filter does not match the published topic.
The SDK’s local filter check demonstrates this without a relay:
python3 data_lab.py check prints wrong filter: False.
Silence alone does not prove a connection failure.
The restored delivery after correcting only the topic is evidence for the diagnosis.Experiment 2: the publisher stops
- Restore the baseline until the subscriber receives three readings.
- Stop the publisher with Ctrl+C.
- Keep the subscriber running for five seconds.
- Check whether the publisher process still exists and whether new readings arrive.
- Restart the publisher with its original topic and credential.
Explanation
Explanation
An open subscription does not generate readings.
The publisher must continue producing them.
The lab resets its sequence counter when its process restarts, so the numbers can start at one again.
A production design needs a publisher identity or run identifier when sequence numbers must remain unambiguous across restarts.
Experiment 3: an operation is denied
Use a training credential that the administrator intentionally restricts. Do not revoke or modify a production credential for this exercise. The administrator must state which publish or subscribe operation the credential denies.- Restore the successful baseline.
- Stop the client whose credential you will replace.
- Set the restricted credential through the normal credential mechanism.
- Attempt the same operation with the same topic.
- Collect the client result and the relay’s authorization result.
- Restore the original training credential and check delivery again.
Written alternative and worked answer
Written alternative and worked answer
Consider this fictional evidence:The denied operation is the strongest evidence.
A returned publish call does not override the relay’s authorization decision.
Restore the authorized training credential, repeat the same operation, and check receipt.
Changing a CIDR mask or topic cannot grant the missing permission.
Keep a short evidence record
For a failure you cannot explain, record the unresolved question and the next check.
Do not label a guessed cause as a finding.