fix(nostr): log publish skips at WARNING instead of silently #54
2 changed files with 21 additions and 4 deletions
fix(nostr): log publish skips at WARNING instead of silently
Some checks failed
lint.yml / fix(nostr): log publish skips at WARNING instead of silently (pull_request) Failing after 0s
Some checks failed
lint.yml / fix(nostr): log publish skips at WARNING instead of silently (pull_request) Failing after 0s
Both paths that decline to publish a NIP-52 calendar event were invisible at the INFO level instances actually run at: the `signer is None` branch returned bare with no log at any level, and the missing-client branch logged at debug. A skipped publish leaves the relay serving whatever inventory it last saw, so the public ticket count stops tracking the DB with nothing to indicate it. That has now been found twice, both times only because a human noticed a wrong number on a public page — #35 on aio-demo, and on cfaun where an event drifted for 14 days and produced no log line at all, success or failure. Both messages name the event id and whether it was a publish or a delete, so a skip can be tied to a specific event without correlating timestamps by hand. Refs #51
commit
165787d134
|
|
@ -32,9 +32,19 @@ async def publish_or_delete_nostr_event(event: Event, *, delete: bool = False) -
|
|||
if signer is None:
|
||||
# Wallet missing, account missing, unclassified row, or
|
||||
# ClientSideOnlySigner account (server can't sign for them).
|
||||
# Soft-fail: skip the publish silently. The user can still
|
||||
# publish kind-31922/31923 events client-side once we have
|
||||
# that path.
|
||||
# Soft-fail: the HTTP / payment flow that triggered this must
|
||||
# not break. The user can still publish kind-31922/31923
|
||||
# events client-side once we have that path.
|
||||
#
|
||||
# Logged at WARNING, not debug: skipping the publish means the
|
||||
# relay keeps serving whatever inventory it last saw, so the
|
||||
# public ticket count silently stops tracking the DB. That has
|
||||
# twice been discovered only by a human noticing a wrong number
|
||||
# on a public page (aiolabs/events#35, #51).
|
||||
logger.warning(
|
||||
f"[EVENTS] No signer for wallet {event.wallet}, skipping "
|
||||
f"NIP-52 {'delete' if delete else 'publish'} for event {event.id}"
|
||||
)
|
||||
return
|
||||
|
||||
nostr_event = await publish_event_to_nostr(
|
||||
|
|
|
|||
|
|
@ -172,7 +172,14 @@ async def publish_event_to_nostr(
|
|||
Returns the published NostrEvent for metadata storage, or None on failure.
|
||||
"""
|
||||
if not nostr_client:
|
||||
logger.debug("[EVENTS] No NostrClient available, skipping publish")
|
||||
# WARNING, not debug: with no client the event is never queued, so
|
||||
# the relay keeps serving stale inventory and nothing downstream
|
||||
# can tell. At debug this skip is invisible at the INFO level
|
||||
# instances actually run at (aiolabs/events#35, #51).
|
||||
logger.warning(
|
||||
"[EVENTS] No NostrClient, skipping NIP-52 "
|
||||
f"{'delete' if delete else 'publish'} for event {event.id}"
|
||||
)
|
||||
return None
|
||||
|
||||
try:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue