Skills.

A scheduled job has two possible outcomes: it ran and delivered; or it ran, said “completed” and nobody received anything. The second is the common one — and the hardest to see, because the status is green.

What makes a job “complete” without delivering

The proof that does not lie

There is exactly one proof of delivery: the identifier the channel returned when it accepted the message. Store it and show it in the job report.

OK sendMessage message_id=48293 chat=-100...

Job status, exit code and a “success” log are all compatible with the message never leaving. The id is not.

How to actually test it

  1. Force the delivery conditionA job that “has nothing to do” tests nothing. Run it once with guaranteed content.
  2. Read the result from the channel's sideConfirm on the channel (or via its API) that the message arrived — not in the scheduler's log.
  3. Log which path was used“Run by the scheduler” and “run by hand” must appear in the log: without that, you are testing the wrong path.

If the job is silent when there is nothing to do

Silence by design needs proof that the job ran: one log line per execution. Without it, “I received nothing” and “the job did not run” are indistinguishable — and you find out weeks later.

See the complete pack See all skills

Want this wired into your project? Guided setup from R$ 1.500, with the first cycle run together.

← all skills

Get the next article

Sent when I publish, together with the free skill used here. No spam, one-click unsubscribe.

Payment processed by Stripe — no card data touches this server. Instant delivery once confirmed. Prices in BRL (Brazilian real) — you are charged in BRL. Terms, delivery and refund.