Subscribe to calendar via iCal does not work

Environment

Discourse Version: 3.3.0.beta5-dev

Plugin Commit: 0.4.0

Steps to Reproduce

  1. Copy the webcal:// link provided by the “Subscribe” menu in the calendar view
  2. Add a new calendar with the webcal link in Google Calendar
  3. The calendar will be added but no events will be shown in Google Calendar
  4. Apple Calendar and some other calendar apps will fail to add the calendar at all (these seem to expect a http:// link, not webcal://)

Example

https://gruenealzeyworms.cloud

This is a private forum.

Logs

Message (5 copies reported)

NoMethodError (undefined method more_topics_url=' for nil) app/controllers/list_controller.rb:89:in block (2 levels) in class:ListController
app/controllers/application_controller.rb:424:in block in with_resolved_locale' app/controllers/application_controller.rb:424:in with_resolved_locale’
lib/middleware/omniauth_bypass_middleware.rb:64:in call' lib/content_security_policy/middleware.rb:12:in call’
lib/middleware/anonymous_cache.rb:393:in call' lib/middleware/csp_script_nonce_injector.rb:12:in call’
config/initializers/008-rack-cors.rb:14:in call' lib/freedom_patches/rails_rack_logger_from_rails_7_2.rb:35:in call_app’
lib/freedom_patches/rails_rack_logger_from_rails_7_2.rb:22:in call' config/initializers/100-quiet_logger.rb:20:in call’
config/initializers/100-silence_logger.rb:29:in call' lib/middleware/enforce_hostname.rb:24:in call’
lib/middleware/request_tracker.rb:360:in `call’

Backtrace

app/controllers/list_controller.rb:89:in block (2 levels) in <class:ListController>' actionpack (7.1.3.4) lib/action_controller/metal/basic_implicit_render.rb:6:in send_action’
actionpack (7.1.3.4) lib/abstract_controller/base.rb:224:in process_action' actionpack (7.1.3.4) lib/action_controller/metal/rendering.rb:165:in process_action’
actionpack (7.1.3.4) lib/abstract_controller/callbacks.rb:259:in block in process_action' activesupport (7.1.3.4) lib/active_support/callbacks.rb:121:in block in run_callbacks’
app/controllers/application_controller.rb:424:in block in with_resolved_locale' i18n (1.14.5) lib/i18n.rb:351:in with_locale’
app/controllers/application_controller.rb:424:in with_resolved_locale' activesupport (7.1.3.4) lib/active_support/callbacks.rb:130:in block in run_callbacks’
activesupport (7.1.3.4) lib/active_support/callbacks.rb:141:in run_callbacks' actionpack (7.1.3.4) lib/abstract_controller/callbacks.rb:258:in process_action’
actionpack (7.1.3.4) lib/action_controller/metal/rescue.rb:25:in process_action' actionpack (7.1.3.4) lib/action_controller/metal/instrumentation.rb:74:in block in process_action’
activesupport (7.1.3.4) lib/active_support/notifications.rb:206:in block in instrument' activesupport (7.1.3.4) lib/active_support/notifications/instrumenter.rb:58:in instrument’
activesupport (7.1.3.4) lib/active_support/notifications.rb:206:in instrument' actionpack (7.1.3.4) lib/action_controller/metal/instrumentation.rb:73:in process_action’
actionpack (7.1.3.4) lib/action_controller/metal/params_wrapper.rb:261:in process_action' activerecord (7.1.3.4) lib/active_record/railties/controller_runtime.rb:32:in process_action’
actionpack (7.1.3.4) lib/abstract_controller/base.rb:160:in process' actionview (7.1.3.4) lib/action_view/rendering.rb:40:in process’
rack-mini-profiler (3.3.1) lib/mini_profiler/profiling_methods.rb:115:in block in profile_method' actionpack (7.1.3.4) lib/action_controller/metal.rb:227:in dispatch’
actionpack (7.1.3.4) lib/action_controller/metal.rb:309:in dispatch' actionpack (7.1.3.4) lib/action_dispatch/routing/route_set.rb:49:in dispatch’
actionpack (7.1.3.4) lib/action_dispatch/routing/route_set.rb:32:in serve' actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:51:in block in serve’
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:131:in block in find_routes' actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:124:in each’
actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:124:in find_routes' actionpack (7.1.3.4) lib/action_dispatch/journey/router.rb:32:in serve’
actionpack (7.1.3.4) lib/action_dispatch/routing/route_set.rb:882:in call' lib/middleware/omniauth_bypass_middleware.rb:64:in call’
rack (2.2.9) lib/rack/tempfile_reaper.rb:15:in call' rack (2.2.9) lib/rack/conditional_get.rb:27:in call’
rack (2.2.9) lib/rack/head.rb:12:in call' actionpack (7.1.3.4) lib/action_dispatch/http/permissions_policy.rb:36:in call’
lib/content_security_policy/middleware.rb:12:in call' lib/middleware/anonymous_cache.rb:393:in call’
lib/middleware/csp_script_nonce_injector.rb:12:in call' config/initializers/008-rack-cors.rb:14:in call’
rack (2.2.9) lib/rack/session/abstract/id.rb:266:in context' rack (2.2.9) lib/rack/session/abstract/id.rb:260:in call’
actionpack (7.1.3.4) lib/action_dispatch/middleware/cookies.rb:689:in call' actionpack (7.1.3.4) lib/action_dispatch/middleware/callbacks.rb:29:in block in call’
activesupport (7.1.3.4) lib/active_support/callbacks.rb:101:in run_callbacks' actionpack (7.1.3.4) lib/action_dispatch/middleware/callbacks.rb:28:in call’
actionpack (7.1.3.4) lib/action_dispatch/middleware/debug_exceptions.rb:29:in call' actionpack (7.1.3.4) lib/action_dispatch/middleware/show_exceptions.rb:31:in call’
logster (2.20.0) lib/logster/middleware/reporter.rb:40:in call' lib/freedom_patches/rails_rack_logger_from_rails_7_2.rb:35:in call_app’
lib/freedom_patches/rails_rack_logger_from_rails_7_2.rb:22:in call' config/initializers/100-quiet_logger.rb:20:in call’
config/initializers/100-silence_logger.rb:29:in call' actionpack (7.1.3.4) lib/action_dispatch/middleware/request_id.rb:28:in call’
lib/middleware/enforce_hostname.rb:24:in call' rack (2.2.9) lib/rack/method_override.rb:24:in call’
actionpack (7.1.3.4) lib/action_dispatch/middleware/executor.rb:14:in call' rack (2.2.9) lib/rack/sendfile.rb:110:in call’
rack-mini-profiler (3.3.1) lib/mini_profiler.rb:334:in call' message_bus (4.3.8) lib/message_bus/rack/middleware.rb:60:in call’
lib/middleware/request_tracker.rb:360:in call' actionpack (7.1.3.4) lib/action_dispatch/middleware/remote_ip.rb:92:in call’
railties (7.1.3.4) lib/rails/engine.rb:536:in call' railties (7.1.3.4) lib/rails/railtie.rb:226:in public_send’
railties (7.1.3.4) lib/rails/railtie.rb:226:in method_missing' rack (2.2.9) lib/rack/urlmap.rb:74:in block in call’
rack (2.2.9) lib/rack/urlmap.rb:58:in each' rack (2.2.9) lib/rack/urlmap.rb:58:in call’
unicorn (6.1.0) lib/unicorn/http_server.rb:634:in process_client' unicorn (6.1.0) lib/unicorn/http_server.rb:739:in worker_loop’
unicorn (6.1.0) lib/unicorn/http_server.rb:547:in spawn_missing_workers' unicorn (6.1.0) lib/unicorn/http_server.rb:143:in start’
unicorn (6.1.0) bin/unicorn:128:in <top (required)>' vendor/bundle/ruby/3.3.0/bin/unicorn:25:in load’
vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `’

Env

HTTP HOSTS: gruenealzeyworms.cloud

Anyone got an idea how to solve this?

Hey thanks Peter for raising this bug. It is a useful piece of functionality and it would be great to have it working well.

Unfortunately, this plugin isn’t very high on our priority list at present. You’d certainly be most welcome to sponsor a fix if you are in a position to do so.

What would that cost?

Btw, the link to the forum in the op was wrong. I already updated it to https://gruenealzeyworms.cloud

(Been wondering if I should indeed follow that link and land at some funky private worms forum :smile: It’s for a regional chapter of the german green party though, Bündins 90/Die Grünen Alzey Worms…)

For the devs, that’s the console errors:

image

2 Likes