Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BUG REPORT - BigBlueButton Plugin Doesn't Save Settings #2402

Open
CelaldoganGunes opened this issue Aug 24, 2024 · 15 comments
Open

BUG REPORT - BigBlueButton Plugin Doesn't Save Settings #2402

CelaldoganGunes opened this issue Aug 24, 2024 · 15 comments

Comments

@CelaldoganGunes
Copy link

Summary:

When i try to save BigBlueButton plugin settings, it gives an error and doesn't save settings. But I can enable any other plugin without an error.

unnamed

Production.log file is below.

Steps to reproduce:

  1. Try to save BigBlueButton settings.
  2. Get Error

Expected behavior:

Saving the settings.

Actual behavior:

Getting an error.

Additional notes:

Production.log File:
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Started PUT "/plugins/big_blue_button" for 24.133.20.31 at 2024-08-23 06:46:40 +0000
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL PluginSetting Load (2.4ms) SELECT "plugin_settings".* FROM "public"."plugin_settings" WHERE "plugin_settings"."name" = 'sessions' ORDER BY "plugin_settings"."id" ASC LIMIT 1 [production:1 primary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Processing by PluginsController#update as HTML
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Parameters: {"utf8"=>"✓", "authenticity_token"=>"Y0+ZZ2nQ8dzgkWwnbei3Dm30RRR+GHoU9NvbQEyIHxsmC6krOYqarKjlD0kVv4FLRq0tUwQhQ2S3nLkuAuF0Tg==", "plugin_setting"=>{"disabled"=>"0"}, "settings"=>{"domain"=>"bbb1.diceofknights.com", "secret"=>"JQn3W75IUJryho7rYv59VsOptxI4oTHc", "recording_enabled"=>"0", "free_trial"=>"0", "replace_with_alternatives"=>"0", "use_fallback"=>"0"}, "id"=>"big_blue_button"}
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL SQL (1.4ms) SELECT "pseudonyms"."id" AS t0_r0, "pseudonyms"."user_id" AS t0_r1, "pseudonyms"."account_id" AS t0_r2, "pseudonyms"."workflow_state" AS t0_r3, "pseudonyms"."unique_id" AS t0_r4, "pseudonyms"."crypted_password" AS t0_r5, "pseudonyms"."password_salt" AS t0_r6, "pseudonyms"."persistence_token" AS t0_r7, "pseudonyms"."single_access_token" AS t0_r8, "pseudonyms"."perishable_token" AS t0_r9, "pseudonyms"."login_count" AS t0_r10, "pseudonyms"."failed_login_count" AS t0_r11, "pseudonyms"."last_request_at" AS t0_r12, "pseudonyms"."last_login_at" AS t0_r13, "pseudonyms"."current_login_at" AS t0_r14, "pseudonyms"."last_login_ip" AS t0_r15, "pseudonyms"."current_login_ip" AS t0_r16, "pseudonyms"."reset_password_token" AS t0_r17, "pseudonyms"."position" AS t0_r18, "pseudonyms"."created_at" AS t0_r19, "pseudonyms"."updated_at" AS t0_r20, "pseudonyms"."password_auto_generated" AS t0_r21, "pseudonyms"."deleted_at" AS t0_r22, "pseudonyms"."sis_batch_id" AS t0_r23, "pseudonyms"."sis_user_id" AS t0_r24, "pseudonyms"."sis_ssha" AS t0_r25, "pseudonyms"."communication_channel_id" AS t0_r26, "pseudonyms"."sis_communication_channel_id" AS t0_r27, "pseudonyms"."stuck_sis_fields" AS t0_r28, "pseudonyms"."integration_id" AS t0_r29, "pseudonyms"."authentication_provider_id" AS t0_r30, "pseudonyms"."declared_user_type" AS t0_r31, "pseudonyms"."login_attribute" AS t0_r32, "pseudonyms"."unique_ids" AS t0_r33, "pseudonyms"."verification_token" AS t0_r34, "users"."id" AS t1_r0, "users"."name" AS t1_r1, "users"."sortable_name" AS t1_r2, "users"."workflow_state" AS t1_r3, "users"."time_zone" AS t1_r4, "users"."uuid" AS t1_r5, "users"."created_at" AS t1_r6, "users"."updated_at" AS t1_r7, "users"."avatar_image_url" AS t1_r8, "users"."avatar_image_source" AS t1_r9, "users"."avatar_image_updated_at" AS t1_r10, "users"."phone" AS t1_r11, "users"."school_name" AS t1_r12, "users"."school_position" AS t1_r13, "users"."short_name" AS t1_r14, "users"."deleted_at" AS t1_r15, "users"."show_user_services" AS t1_r16, "users"."page_views_count" AS t1_r17, "users"."reminder_time_for_due_dates" AS t1_r18, "users"."reminder_time_for_grading" AS t1_r19, "users"."storage_quota" AS t1_r20, "users"."visible_inbox_types" AS t1_r21, "users"."last_user_note" AS t1_r22, "users"."subscribe_to_emails" AS t1_r23, "users"."features_used" AS t1_r24, "users"."preferences" AS t1_r25, "users"."avatar_state" AS t1_r26, "users"."locale" AS t1_r27, "users"."browser_locale" AS t1_r28, "users"."unread_conversations_count" AS t1_r29, "users"."stuck_sis_fields" AS t1_r30, "users"."public" AS t1_r31, "users"."otp_secret_key_enc" AS t1_r32, "users"."otp_secret_key_salt" AS t1_r33, "users"."otp_communication_channel_id" AS t1_r34, "users"."initial_enrollment_type" AS t1_r35, "users"."crocodoc_id" AS t1_r36, "users"."last_logged_out" AS t1_r37, "users"."lti_context_id" AS t1_r38, "users"."turnitin_id" AS t1_r39, "users"."lti_id" AS t1_r40, "users"."pronouns" AS t1_r41, "users"."root_account_ids" AS t1_r42, "users"."merged_into_user_id" AS t1_r43 FROM "public"."pseudonyms" LEFT OUTER JOIN "public"."users" ON "users"."id" = "pseudonyms"."user_id" WHERE "pseudonyms"."id" = 1 LIMIT 1 [production:1 primary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] [AUTH] Approved Authlogic session
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] [AUTH] inital load: pseud -> 1, user -> 1
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] [AUTH] final user: 1
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL AccountUser Load (1.2ms) SELECT "account_users".* FROM "public"."account_users" WHERE "account_users"."account_id" = 2 AND "account_users"."workflow_state" != 'deleted' [production:1 primary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL Role Load (1.1ms) SELECT "roles".* FROM "public"."roles" WHERE "roles"."id" = 9 LIMIT 1 [production:1 primary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL PluginSetting Load (0.9ms) SELECT "plugin_settings".* FROM "public"."plugin_settings" WHERE "plugin_settings"."name" = 'big_blue_button' ORDER BY "plugin_settings"."id" ASC LIMIT 1 [production:1 primary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL TRANSACTION (1.4ms) BEGIN [production:1 primary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL PluginSetting Exists? (2.5ms) SELECT 1 AS one FROM "public"."plugin_settings" WHERE "plugin_settings"."name" = 'big_blue_button' AND "plugin_settings"."id" != 1 LIMIT 1 [production:1 primary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL TRANSACTION (1.6ms) ROLLBACK [production:1 primary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL PluginSetting Load (0.9ms) SELECT "plugin_settings".* FROM "public"."plugin_settings" WHERE "plugin_settings"."name" = 'big_blue_button' ORDER BY "plugin_settings"."id" ASC LIMIT 1 [production:1 primary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Rendering layout layouts/application.html.erb
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Rendering plugins/show.html.erb within layouts/application
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Rendered plugins/_settings_header.html.erb (Duration: 0.0ms | Allocations: 25)
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Rendered plugins/_big_blue_button_settings.html.erb (Duration: 2.2ms | Allocations: 1629)
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Rendered plugins/show.html.erb within layouts/application (Duration: 4.8ms | Allocations: 3362)
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL FeatureFlag Load (1.4ms) SELECT "feature_flags".* FROM "public"."feature_flags" WHERE "feature_flags"."feature" = 'high_contrast' AND "feature_flags"."context_type" = 'User' AND "feature_flags"."context_id" = 1 ORDER BY "feature_flags"."id" ASC LIMIT 1 [production:1 primary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL Enrollment Pluck (1.8ms) SELECT DISTINCT "enrollments"."type" FROM "public"."enrollments" WHERE "enrollments"."root_account_id" = 1 AND "enrollments"."user_id" = 1 AND "enrollments"."workflow_state" = 'active' [production:1 secondary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL SQL (1.6ms) SELECT "account_users"."id" AS t0_r0, "account_users"."account_id" AS t0_r1, "account_users"."user_id" AS t0_r2, "account_users"."created_at" AS t0_r3, "account_users"."updated_at" AS t0_r4, "account_users"."role_id" AS t0_r5, "account_users"."workflow_state" AS t0_r6, "account_users"."sis_batch_id" AS t0_r7, "account_users"."root_account_id" AS t0_r8, "accounts"."id" AS t1_r0, "accounts"."name" AS t1_r1, "accounts"."created_at" AS t1_r2, "accounts"."updated_at" AS t1_r3, "accounts"."workflow_state" AS t1_r4, "accounts"."deleted_at" AS t1_r5, "accounts"."parent_account_id" AS t1_r6, "accounts"."sis_source_id" AS t1_r7, "accounts"."sis_batch_id" AS t1_r8, "accounts"."current_sis_batch_id" AS t1_r9, "accounts"."root_account_id" AS t1_r10, "accounts"."last_successful_sis_batch_id" AS t1_r11, "accounts"."membership_types" AS t1_r12, "accounts"."default_time_zone" AS t1_r13, "accounts"."external_status" AS t1_r14, "accounts"."storage_quota" AS t1_r15, "accounts"."default_storage_quota" AS t1_r16, "accounts"."enable_user_notes" AS t1_r17, "accounts"."allowed_services" AS t1_r18, "accounts"."turnitin_pledge" AS t1_r19, "accounts"."turnitin_comments" AS t1_r20, "accounts"."turnitin_account_id" AS t1_r21, "accounts"."turnitin_salt" AS t1_r22, "accounts"."turnitin_crypted_secret" AS t1_r23, "accounts"."show_section_name_as_course_name" AS t1_r24, "accounts"."allow_sis_import" AS t1_r25, "accounts"."equella_endpoint" AS t1_r26, "accounts"."settings" AS t1_r27, "accounts"."uuid" AS t1_r28, "accounts"."default_locale" AS t1_r29, "accounts"."stuck_sis_fields" AS t1_r30, "accounts"."default_user_storage_quota" AS t1_r31, "accounts"."lti_guid" AS t1_r32, "accounts"."default_group_storage_quota" AS t1_r33, "accounts"."turnitin_host" AS t1_r34, "accounts"."integration_id" AS t1_r35, "accounts"."lti_context_id" AS t1_r36, "accounts"."brand_config_md5" AS t1_r37, "accounts"."turnitin_originality" AS t1_r38, "accounts"."account_calendar_subscription_type" AS t1_r39, "accounts"."latest_outcome_import_id" AS t1_r40, "accounts"."course_template_id" AS t1_r41, "accounts"."account_calendar_visible" AS t1_r42, "accounts"."grading_standard_id" AS t1_r43 FROM "public"."account_users" LEFT OUTER JOIN "public"."accounts" ON "accounts"."id" = "account_users"."account_id" WHERE "account_users"."workflow_state" != 'deleted' AND (user_id=1 AND (accounts.root_account_id IN (1,2) OR account_id IN (1,2))) [production:1 secondary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL AccountUser Load (1.2ms) SELECT "account_users".* FROM "public"."account_users" WHERE "account_users"."user_id" = 1 AND "account_users"."workflow_state" != 'deleted' [production:1 primary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL Role Load (1.0ms) SELECT "roles".* FROM "public"."roles" WHERE "roles"."id" = 9 LIMIT 1 [production:1 primary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL Role Load (1.2ms) SELECT "roles".* FROM "public"."roles" WHERE "roles"."id" = 1 LIMIT 1 [production:1 primary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL UserPreferenceValue Pluck (0.9ms) SELECT "user_preference_values"."id", "user_preference_values"."value" FROM "public"."user_preference_values" WHERE "user_preference_values"."user_id" = 1 AND "user_preference_values"."key" = 'visited_tabs' AND "user_preference_values"."sub_key" IS NULL LIMIT 1 [production:1 primary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL FeatureFlag Load (1.7ms) SELECT "feature_flags".* FROM "public"."feature_flags" WHERE "feature_flags"."feature" = 'auto_show_cc' AND "feature_flags"."context_type" = 'User' AND "feature_flags"."context_id" = 1 ORDER BY "feature_flags"."id" ASC LIMIT 1 [production:1 primary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL FeatureFlag Load (1.1ms) SELECT "feature_flags".* FROM "public"."feature_flags" WHERE "feature_flags"."feature" = 'disable_celebrations' AND "feature_flags"."context_type" = 'User' AND "feature_flags"."context_id" = 1 ORDER BY "feature_flags"."id" ASC LIMIT 1 [production:1 primary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL FeatureFlag Load (1.0ms) SELECT "feature_flags".* FROM "public"."feature_flags" WHERE "feature_flags"."feature" = 'disable_keyboard_shortcuts' AND "feature_flags"."context_type" = 'User' AND "feature_flags"."context_id" = 1 ORDER BY "feature_flags"."id" ASC LIMIT 1 [production:1 primary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL FeatureFlag Load (1.1ms) SELECT "feature_flags".* FROM "public"."feature_flags" WHERE "feature_flags"."feature" = 'disable_alert_timeouts' AND "feature_flags"."context_type" = 'User' AND "feature_flags"."context_id" = 1 ORDER BY "feature_flags"."id" ASC LIMIT 1 [production:1 primary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL ExternalIntegrationKey Load (1.3ms) SELECT "external_integration_keys".* FROM "public"."external_integration_keys" WHERE "external_integration_keys"."context_id" = 1 AND "external_integration_keys"."context_type" = 'Account' AND "external_integration_keys"."key_type" = 'salesforce_billing_country_code' LIMIT 1 [production:1 primary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL Enrollment Exists? (1.3ms) SELECT 1 AS one FROM "public"."enrollments" WHERE "enrollments"."user_id" = 1 AND "enrollments"."type" NOT IN ('StudentEnrollment', 'StudentViewEnrollment', 'ObserverEnrollment') AND "enrollments"."workflow_state" NOT IN ('rejected', 'inactive', 'deleted') LIMIT 1 [production:1 primary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL CommunicationChannel Load (1.1ms) SELECT "communication_channels".* FROM "public"."communication_channels" WHERE "communication_channels"."user_id" = 1 AND "communication_channels"."path_type" IN ('email', 'personal_email') AND "communication_channels"."workflow_state" != 'retired' ORDER BY communication_channels.position ASC LIMIT 1 [production:1 primary]
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] CACHE SQL CommunicationChannel Load (0.0ms) 1::SELECT "communication_channels".* FROM "public"."communication_channels" WHERE "communication_channels"."user_id" = 1 AND "communication_channels"."path_type" IN ('email', 'personal_email') AND "communication_channels"."workflow_state" != 'retired' ORDER BY communication_channels.position ASC LIMIT 1
[ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL Account Load (1.3ms) SELECT "accounts"."settings" FROM "public"."accounts" WHERE ((accounts.root_account_id = 0 OR accounts.root_account_id IS NULL) AND accounts.id != 0) AND (accounts.workflow_state<>'deleted') AND "accounts"."id" BETWEEN 0 AND 10000000000000 AND (settings LIKE '%k5_accounts:

  • %') [production:1 primary]
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] init @js_env (50.3ms)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] include_css_bundles (0.0ms)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL ContextExternalTool Load (1.3ms) SELECT "context_external_tools".* FROM "public"."context_external_tools" WHERE "context_external_tools"."context_type" = 'Account' AND "context_external_tools"."context_id" = 2 AND "context_external_tools"."workflow_state" NOT IN ('deleted', 'disabled') AND EXISTS (SELECT "context_external_tool_placements".* FROM "public"."context_external_tool_placements" WHERE "context_external_tool_placements"."placement_type" = 'editor_button' AND (context_external_tools.id = context_external_tool_placements.context_external_tool_id)) [production:1 primary]
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL PluginSetting Load (0.9ms) SELECT "plugin_settings".* FROM "public"."plugin_settings" WHERE "plugin_settings"."name" = 'pandapub' ORDER BY "plugin_settings"."id" ASC LIMIT 1 [production:1 primary]
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] rendering INST (5.3ms)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] rendering ENV (0.2ms)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] rendering BRANDABLE_CSS_HANDLEBARS_INDEX (0.0ms)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] rendering REMOTES (0.0ms)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] include_head_js (1.9ms)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Rendered layouts/_head.html.erb (Duration: 9.5ms | Allocations: 3384)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL User Load (0.9ms) SELECT "users".* FROM "public"."users" WHERE "users"."id" = 1 LIMIT 1 [production:1 primary]
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL ContextExternalTool Load (1.2ms) SELECT "context_external_tools".* FROM "public"."context_external_tools" WHERE "context_external_tools"."context_type" = 'Account' AND "context_external_tools"."context_id" = 2 AND "context_external_tools"."workflow_state" NOT IN ('deleted', 'disabled') AND EXISTS (SELECT "context_external_tool_placements".* FROM "public"."context_external_tool_placements" WHERE "context_external_tool_placements"."placement_type" = 'account_navigation' AND (context_external_tools.id = context_external_tool_placements.context_external_tool_id)) [production:1 primary]
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL Lti::MessageHandler Load (1.9ms) SELECT "lti_message_handlers".* FROM "public"."lti_message_handlers" INNER JOIN "public"."lti_resource_handlers" ON "lti_resource_handlers"."id" = "lti_message_handlers"."resource_handler_id" WHERE "lti_resource_handlers"."tool_proxy_id" IN (SELECT "lti_tool_proxies"."id" FROM "public"."lti_tool_proxies" JOIN (SELECT DISTINCT ON (lti_tool_proxies.id) lti_tool_proxy_bindings.* FROM "public"."lti_tool_proxy_bindings" INNER JOIN "public"."lti_tool_proxies" ON "lti_tool_proxies"."id" = "lti_tool_proxy_bindings"."tool_proxy_id" INNER JOIN ( VALUES ('Account',2,0),('Account',2,0)) as x(context_type, context_id, ordering) ON lti_tool_proxy_bindings.context_type = x.context_type AND lti_tool_proxy_bindings.context_id = x.context_id WHERE ((lti_tool_proxy_bindings.context_type = 'Account' AND lti_tool_proxy_bindings.context_id = 2) OR (lti_tool_proxy_bindings.context_type = 'Account' AND lti_tool_proxy_bindings.context_id IN (2))) ORDER BY lti_tool_proxies.id, x.ordering) bindings on lti_tool_proxies.id = bindings.tool_proxy_id WHERE (bindings.enabled = true) AND "lti_tool_proxies"."workflow_state" = 'active') AND EXISTS (SELECT "lti_resource_placements".* FROM "public"."lti_resource_placements" WHERE "lti_resource_placements"."placement" = 'account_navigation' AND (lti_message_handlers.id = lti_resource_placements.message_handler_id)) AND "lti_message_handlers"."message_type" = 'basic-lti-launch-request' [production:1 primary]
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL FeatureFlag Load (1.4ms) SELECT "feature_flags".* FROM "public"."feature_flags" WHERE "feature_flags"."feature" = 'underline_all_links' AND "feature_flags"."context_type" = 'User' AND "feature_flags"."context_id" = 1 ORDER BY "feature_flags"."id" ASC LIMIT 1 [production:1 primary]
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Rendered shared/_static_notices.html.erb (Duration: 0.1ms | Allocations: 88)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Rendered shared/_flash_notices.html.erb (Duration: 0.0ms | Allocations: 27)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL AccountUser Load (1.1ms) SELECT "account_users".* FROM "public"."account_users" WHERE "account_users"."account_id" IN (1, 2) AND "account_users"."user_id" = 1 AND "account_users"."workflow_state" != 'deleted' [production:1 primary]
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL AccountUser Pluck (1.1ms) SELECT DISTINCT "account_users"."account_id" FROM "public"."account_users" WHERE "account_users"."user_id" = 1 AND "account_users"."workflow_state" != 'deleted' [production:1 primary]
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL Account Load (1.3ms) SELECT "accounts".* FROM "public"."accounts" WHERE (accounts.workflow_state<>'deleted') AND "accounts"."id" IN (1, 2) ORDER BY "accounts"."id" ASC [production:1 primary]
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Rendered shared/svg/_svg_icon_accounts_new_styles.svg (Duration: 0.0ms | Allocations: 27)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Rendered shared/svg/_svg_icon_dashboard.svg (Duration: 0.0ms | Allocations: 27)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Rendered shared/svg/_svg_icon_courses_new_styles.svg (Duration: 0.0ms | Allocations: 27)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL Group Load (1.4ms) SELECT "groups"."id", "groups"."name", "groups"."workflow_state", "groups"."created_at", "groups"."updated_at", "groups"."context_id", "groups"."context_type", "groups"."max_membership", "groups"."is_public", "groups"."account_id", "groups"."wiki_id", "groups"."deleted_at", "groups"."join_level", "groups"."default_view", "groups"."migration_id", "groups"."storage_quota", "groups"."uuid", "groups"."root_account_id", "groups"."sis_source_id", "groups"."sis_batch_id", "groups"."stuck_sis_fields", "groups"."group_category_id", "groups"."description", "groups"."avatar_attachment_id", "groups"."leader_id", "groups"."lti_context_id" FROM "public"."groups" INNER JOIN "public"."group_memberships" ON "groups"."id" = "group_memberships"."group_id" WHERE "group_memberships"."user_id" = 1 AND (group_memberships.workflow_state = 'accepted' AND groups.workflow_state<>'deleted') [production:1 primary]
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] CACHE SQL Group Load (0.0ms) 1::SELECT "groups"."id", "groups"."name", "groups"."workflow_state", "groups"."created_at", "groups"."updated_at", "groups"."context_id", "groups"."context_type", "groups"."max_membership", "groups"."is_public", "groups"."account_id", "groups"."wiki_id", "groups"."deleted_at", "groups"."join_level", "groups"."default_view", "groups"."migration_id", "groups"."storage_quota", "groups"."uuid", "groups"."root_account_id", "groups"."sis_source_id", "groups"."sis_batch_id", "groups"."stuck_sis_fields", "groups"."group_category_id", "groups"."description", "groups"."avatar_attachment_id", "groups"."leader_id", "groups"."lti_context_id" FROM "public"."groups" INNER JOIN "public"."group_memberships" ON "groups"."id" = "group_memberships"."group_id" WHERE "group_memberships"."user_id" = 1 AND (group_memberships.workflow_state = 'accepted' AND groups.workflow_state<>'deleted')
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Rendered shared/svg/_svg_icon_calendar_new_styles.svg (Duration: 0.0ms | Allocations: 27)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Rendered shared/svg/_svg_icon_inbox.svg (Duration: 0.0ms | Allocations: 27)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL Role Load (1.2ms) SELECT "roles".* FROM "public"."roles" WHERE "roles"."id" = 9 LIMIT 1 [production:1 primary]
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL Account Load (1.2ms) SELECT "accounts".* FROM "public"."accounts" WHERE "accounts"."id" = 2 LIMIT 1 [production:1 primary]
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL FeatureFlag Load (1.2ms) SELECT "feature_flags".* FROM "public"."feature_flags" WHERE "feature_flags"."context_id" = 2 AND "feature_flags"."context_type" = 'Account' [production:1 primary]
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL Role Load (1.1ms) SELECT "roles".* FROM "public"."roles" WHERE "roles"."id" = 1 LIMIT 1 [production:1 primary]
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL ContextExternalTool Load (1.3ms) SELECT "context_external_tools".* FROM "public"."context_external_tools" WHERE "context_external_tools"."context_type" = 'Account' AND "context_external_tools"."context_id" = 1 AND "context_external_tools"."workflow_state" NOT IN ('deleted', 'disabled') AND EXISTS (SELECT "context_external_tool_placements".* FROM "public"."context_external_tool_placements" WHERE "context_external_tool_placements"."placement_type" = 'global_navigation' AND (context_external_tools.id = context_external_tool_placements.context_external_tool_id)) [production:1 primary]
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Rendered external_tools/_global_nav_menu_items.html.erb (Duration: 14.3ms | Allocations: 3325) [cache miss]
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Rendered shared/svg/_svg_icon_help.svg (Duration: 0.0ms | Allocations: 27)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Rendered shared/svg/_svg_icon_navtoggle.svg (Duration: 0.0ms | Allocations: 27)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Rendered shared/_new_nav_header.html.erb (Duration: 31.7ms | Allocations: 9434)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] SQL PluginSetting Load (1.4ms) SELECT "plugin_settings".* FROM "public"."plugin_settings" WHERE "plugin_settings"."name" = 'inst_fs' ORDER BY "plugin_settings"."id" ASC LIMIT 1 [production:1 primary]
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Rendered lti/platform_storage/_forwarding_frame.html.erb (Duration: 0.4ms | Allocations: 198)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Rendered shared/_additional_footer_scripts.erb (Duration: 0.0ms | Allocations: 24)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Rendered layouts/_foot.html.erb (Duration: 3.1ms | Allocations: 761)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Rendered layout layouts/application.html.erb (Duration: 122.9ms | Allocations: 41969)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] [STATSD] (sql_read: 39.00) (sql_write: 2.00) (sql_cache: 0.00) (active_record: 25.00) (cache_read: 68.00) (total: 147.54) (view: 84.80) (db: 49.43)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] Completed 200 OK in 148ms (Views: 84.8ms | ActiveRecord: 49.4ms | Allocations: 49167)
    [ff03e9cb67ec38e648cc8277ebf16e73 d00f9cec-45c2-4512-9e98-9195a64d4f05] [STAT] 1282620 1282620 0 1282620 0.10434300000000007 0.003375000000000017
@amg-web
Copy link
Contributor

amg-web commented Aug 25, 2024

confirm.
I can disable plugin, but can not enable back

@CelaldoganGunes
Copy link
Author

https://groups.google.com/g/canvas-lms-users/c/mrk4QDfDL1Y

I also opened a topic on google canvas lms group. there are other people that problem. I think there is a bug.

@CelaldoganGunes CelaldoganGunes changed the title BigBlueButton Plugin Doesn't Save Settings BUG REPORT - BigBlueButton Plugin Doesn't Save Settings Aug 25, 2024
@johnyka
Copy link

johnyka commented Aug 28, 2024

Hi @CelaldoganGunes!
The UI gives you a feedback about the problem. Did you fill the domain field correctly?

I just tried to reproduce it, but I was able to enable the plugin with a valid domain

@amg-web
Copy link
Contributor

amg-web commented Aug 28, 2024

@johnyka - be sure we activate not first time.
enter domain and secret and got error.

I gave a try on updated and on fresh deployed server
ruby 3.1
nodejs 18
ubuntu 22.04
result is same

@CelaldoganGunes
Copy link
Author

CelaldoganGunes commented Aug 28, 2024

Hi @CelaldoganGunes! The UI gives you a feedback about the problem. Did you fill the domain field correctly?

I just tried to reproduce it, but I was able to enable the plugin with a valid domain

@johnyka

yes, i have tried everything. it doesn't work.
ruby 3.1
ubuntu 20.04
nodejs 18
everything installed as docs page says.

@opereztuta
Copy link

I had the same problem. As a temporary solution. I fixed it using the console.

  1. Open the Rails console from your terminal: You can access the Rails console by running the following command in your Canvas LMS application directory:

    bundle exec rails console
  2. Create or update the PluginSetting record: In the Rails console, you can execute Ruby code to create or update the PluginSetting for the big_blue_button plugin. Here’s an example of how to set up this plugin:

    # Find or initialize the PluginSetting record for the 'big_blue_button' plugin
    plugin_setting = PluginSetting.find_or_initialize_by(name: "big_blue_button")
    
    # Set the desired settings for the plugin
    plugin_setting.settings = {
      domain: "example.com",          # Replace with your actual domain
      secret: "your_secret_key",      # Replace with your actual secret key
      recording_enabled: "1",         # Enable recording (0 or 1)
      free_trial: true,               # Enable free trial (true or false)
      send_avatar: true,              # Enable sending avatar (true or false)
      replace_with_alternatives: false, # Use alternative (true or false)
      use_fallback: false             # Use fallback (true or false)
    }.with_indifferent_access
    
    # Enable or disable the plugin
    plugin_setting.disabled = false
    
    # Save the record
    plugin_setting.save!

    This code initializes or finds the PluginSetting for big_blue_button, sets the necessary configuration, and saves the record.

  3. Verify the setup: To confirm that the big_blue_button plugin has been set up correctly, you can fetch the PluginSetting record from the Rails console and inspect its attributes:

    ps = PluginSetting.find_by(name: "big_blue_button")
    puts ps.settings
    puts ps.disabled

    This will print the current settings and the status of the plugin (enabled or disabled).

By following these steps, you can manually set up the big_blue_button plugin or any other plugin directly from the Rails console in your Canvas LMS environment.

@CelaldoganGunes
Copy link
Author

@opereztuta thank you but i have some errors.

without sudo:
image

with sudo:
image

@amg-web
Copy link
Contributor

amg-web commented Aug 29, 2024

@CelaldoganGunes
I whould run consele with rails environment:
RAILS_ENV=production bundle exec rails c

@CelaldoganGunes
Copy link
Author

It looks like it works. I see BigBlueButton button on the course menu. But now it says it can't detect my mic eventough i can see my own voice before testing my mic in BBB lobby page.

@amg-web
Copy link
Contributor

amg-web commented Aug 29, 2024

@CelaldoganGunes
that's du to canvas use incorrect settings and nobody fix it.
you can fix it on bbb side, or on canvas side

@CelaldoganGunes
Copy link
Author

@amg-web is there any docs about how to fix it?

@damarizz
Copy link

@amg-web is there any docs about how to fix it?

Hi, did you find a way to solve the mic problem?

@amg-web
Copy link
Contributor

amg-web commented Sep 19, 2024

@CelaldoganGunes @damarizz
this line uses 20 digits to create meeting.
https://github.com/instructure/canvas-lms/blob/7bf71511dcf5f0e365b840ed3a5ab5ada403f8b6/app/models/big_blue_button_conference.rb#L188C15-L188C50

but originally BBB accepts 5-11 digits.
so you can edit above file, or edit BBB side to accept 5-20 digits for voice bridge.
in /opt/freeswitch/conf/dialplan/default/bbb_conference.xml and /opt/freeswitch/conf/dialplan/default/bbb_echo_test.xml
in line

<condition field="destination_number" expression="^(\d{5,11})$">

@jimmypham0306
Copy link

@amg-web is there any docs about how to fix it?

Hi, did you find a way to solve the mic problem?

BigBlueButton and Canvas LMS have different freeswitch “destination_number” format
Please refer this: https://www.webhostingzone.org/blog/how-to-integrate-bigbluebutton-with-canvas-lms

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

No branches or pull requests

6 participants