Skip to content

fix: Enable jetstream endpoint to resolve stream from subject and add error logs - #63

Merged
TiyaBelay merged 5 commits into
mainfrom
ENGAG-3754/resolve-stream-from-subject
Oct 8, 2026
Merged

TiyaBelay merged 5 commits into
mainfrom
ENGAG-3754/resolve-stream-from-subject

Conversation

@TiyaBelay

Copy link
Copy Markdown
Contributor

Description

Previously, when booting a subscriber with a subject and without an explicit stream, messages are not received and no errors were logged. This was because the errors for InvalidStream (when stream is nil) were raised in nats-pure but was not handled in Leopard and just disappeared in the worker pool. By adding the stream lookup and error logs, we can resolve a stream from a subject when creating a new subscriber in rails and have logged errors displayed when subscriber is booted.

Local Testing

Before this change, we only saw the below when stream is not provided, whereas consumer info displayed 2 unprocessed messages:

Container prizepicks-devenv-rails-run-25dab2d3acef Creating
Container prizepicks-devenv-rails-run-25dab2d3acef Created
2026-10-07 14:25:26.534265 I [1:5696] Rails -- REDIS Audit mode is: false
2026-10-07 14:25:26.534309 I [1:5696] Rails -- REDIS Payments mode is: false
2026-10-07 14:25:39.317612 I [1:5696] DemoEventsSubscriber -- Booting NATS API server...
2026-10-07 14:25:39.317689 I [1:5696] DemoEventsSubscriber -- Building 2 workers with options: {name: "demo-events-subscriber", version: "1.0.0"}, instance_args:
2026-10-07 14:25:39.317864 I [1:5696] DemoEventsSubscriber -- Setting up signal trap...

With this change and stream is not provided, stream is resolved from the subject:

Container prizepicks-devenv-rails-run-25dab2d3acef Creating
Container prizepicks-devenv-rails-run-25dab2d3acef Created
2026-10-07 14:25:26.534265 I [1:5696] Rails -- REDIS Audit mode is: false
2026-10-07 14:25:26.534309 I [1:5696] Rails -- REDIS Payments mode is: false
2026-10-07 14:25:39.317612 I [1:5696] DemoEventsSubscriber -- Booting NATS API server...
2026-10-07 14:25:39.317689 I [1:5696] DemoEventsSubscriber -- Building 2 workers with options: {name: "demo-events-subscriber", version: "1.0.0"}, instance_args:
2026-10-07 14:25:39.317864 I [1:5696] DemoEventsSubscriber -- Setting up signal trap...
2026-10-07 14:25:39.333512 I [1:20368] DemoEventsSubscriber -- received {"page" => "/test12"}

With this change, when there's a typo with the subject and it doesn't belong to an existing stream:

Container prizepicks-devenv-rails-run-9aedc640d3b2 Creating
Container prizepicks-devenv-rails-run-9aedc640d3b2 Created
2026-10-07 14:26:16.847193 I [1:5696] Rails -- REDIS Audit mode is: false
2026-10-07 14:26:16.847226 I [1:5696] Rails -- REDIS Payments mode is: false
2026-10-07 14:26:25.304443 I [1:5696] DemoEventsSubscriber -- Booting NATS API server...
2026-10-07 14:26:25.305243 I [1:5696] DemoEventsSubscriber -- Building 2 workers with options: {name: "demo-events-subscriber", version: "1.0.0"}, instance_args:
2026-10-07 14:26:25.306158 I [1:5696] DemoEventsSubscriber -- Setting up signal trap...
2026-10-07 14:26:25.379892 E [1:worker-2 leopard_stream_patch.rb:13] DemoEventsSubscriber -- JetStream endpoint event_page_loaded failed to start:  -- Exception: Rubyists::Leopard::ConfigurationError: JetStream endpoint event_page_loaded has no stream and none captures subject event.page_loaded, create the stream or set `stream:`

@TiyaBelay TiyaBelay changed the title Enable jetstream endpoint to resolve stream from subject and add error logs fix: Enable jetstream endpoint to resolve stream from subject and add error logs Oct 7, 2026
@TiyaBelay
TiyaBelay force-pushed the ENGAG-3754/resolve-stream-from-subject branch from 6f61edd to 1cdeaf6 Compare October 7, 2026 18:55
@TiyaBelay
TiyaBelay requested a review from bougyman October 7, 2026 19:02
Comment thread lib/leopard/nats_jetstream_consumer.rb Outdated
Comment thread lib/leopard/nats_jetstream_consumer.rb
@TiyaBelay
TiyaBelay force-pushed the ENGAG-3754/resolve-stream-from-subject branch from 3fb3333 to aedb08d Compare October 7, 2026 20:57
Comment thread lib/leopard/nats_jetstream_consumer.rb
Comment thread lib/leopard/nats_jetstream_consumer.rb Outdated
Comment thread lib/leopard/nats_jetstream_consumer.rb Outdated
@TiyaBelay
TiyaBelay force-pushed the ENGAG-3754/resolve-stream-from-subject branch from c7eeb1b to 06e88c7 Compare October 7, 2026 22:25
@TiyaBelay
TiyaBelay requested a review from gabeodess October 7, 2026 22:34
@TiyaBelay
TiyaBelay merged commit 923dda5 into main Oct 8, 2026
5 checks passed
@TiyaBelay
TiyaBelay deleted the ENGAG-3754/resolve-stream-from-subject branch October 8, 2026 16:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants