User that has only view permission on a sub-collection has permission problems when sending email in dashboard subscription from a dashboard in this sub-collection

I created a user that has only view permission on a sub-collection. This sub-collection contains a dashboard and questions (in native SQL) used for the creation of the dashboard.
The user can indeed visualize the dashboard and the questions (even if he has no permissions to access the data of the concerned database nor write questions on that database), he can create dashboard subscriptions and send emails but there is errors, we can read "An error occurred while displaying this card." instead of the returning data/charts in the content of the email as it should be if I understand well.
Can you confirm it's a bug?

Here is the diagnostic infos:

{
  "browser-info": {
    "language": "fr",
    "platform": "Linux x86_64",
    "userAgent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0",
    "vendor": ""
  },
  "system-info": {
    "file.encoding": "UTF-8",
    "java.runtime.name": "OpenJDK Runtime Environment",
    "java.runtime.version": "1.8.0_232-b09",
    "java.vendor": "AdoptOpenJDK",
    "java.vendor.url": "http://java.oracle.com/",
    "java.version": "1.8.0_232",
    "java.vm.name": "OpenJDK 64-Bit Server VM",
    "java.vm.version": "25.232-b09",
    "os.name": "Linux",
    "os.version": "4.4.0-210-generic",
    "user.language": "fr",
    "user.timezone": "Europe/Paris"
  },
  "metabase-info": {
    "databases": [
      "h2",
      "oracle"
    ],
    "hosting-env": "unknown",
    "application-database": "postgres",
    "application-database-details": {
      "database": {
        "name": "PostgreSQL",
        "version": "12.5"
      },
      "jdbc-driver": {
        "name": "PostgreSQL JDBC Driver",
        "version": "42.2.18"
      }
    },
    "run-mode": "prod",
    "version": {
      "tag": "v0.40.4",
      "date": "2021-09-09",
      "branch": "release-x.40.x",
      "hash": "16d2e53"
    },
    "settings": {
      "report-timezone": "Europe/Paris"
    }
  }
}

and a part of the message from the log console:

ERROR middleware.catch-exceptions :: Error processing query: null
{:database_id 2,
 :started_at #t "2021-09-22T14:16:53.489+02:00[Europe/Paris]",
 :error_type :missing-required-permissions,
 :json_query
 {:constraints {:max-results 10000, :max-results-bare-rows 2000},
  :type :native,
  :middleware {:js-int-to-string? true, :ignore-cached-results? nil, :add-default-userland-constraints? true},
  :native
  {:query
   "select count(*) XXXXXXXXX",
   :template-tags {}},
  :database 2,
  :parameters (),
  :async? false,
  :cache-ttl 16},
 :status :failed,
 :class clojure.lang.ExceptionInfo,
 :stacktrace
 ["--> query_processor.middleware.permissions$perms_exception.invokeStatic(permissions.clj:27)"
  "query_processor.middleware.permissions$perms_exception.doInvoke(permissions.clj:22)"
  "query_processor.middleware.permissions$perms_exception.invokeStatic(permissions.clj:24)"
  "query_processor.middleware.permissions$perms_exception.invoke(permissions.clj:22)"
  "query_processor.middleware.permissions$fn__46833$check_ad_hoc_query_perms__46838$fn__46842.invoke(permissions.clj:60)"
  "query_processor.middleware.permissions$fn__46833$check_ad_hoc_query_perms__46838.invoke(permissions.clj:49)"
  "query_processor.middleware.permissions$fn__46870$check_query_permissions_STAR___46875$fn__46876.invoke(permissions.clj:71)"
  "query_processor.middleware.permissions$fn__46870$check_query_permissions_STAR___46875.invoke(permissions.clj:64)"
  "query_processor.middleware.permissions$check_query_permissions$fn__46889.invoke(permissions.clj:80)"
  "query_processor.middleware.pre_alias_aggregations$pre_alias_aggregations$fn__49010.invoke(pre_alias_aggregations.clj:40)"
  "query_processor.middleware.cumulative_aggregations$handle_cumulative_aggregations$fn__47090.invoke(cumulative_aggregations.clj:60)"
  "query_processor.middleware.resolve_joined_fields$resolve_joined_fields$fn__49307.invoke(resolve_joined_fields.clj:102)"
  "query_processor.middleware.resolve_joins$resolve_joins$fn__49620.invoke(resolve_joins.clj:171)"
  "query_processor.middleware.add_implicit_joins$add_implicit_joins$fn__45164.invoke(add_implicit_joins.clj:190)"
  "query_processor.middleware.large_int_id$convert_id_to_string$fn__47853.invoke(large_int_id.clj:59)"
  "query_processor.middleware.format_rows$format_rows$fn__47834.invoke(format_rows.clj:74)"
  "query_processor.middleware.add_default_temporal_unit$add_default_temporal_unit$fn__44458.invoke(add_default_temporal_unit.clj:23)"
  "query_processor.middleware.desugar$desugar$fn__47156.invoke(desugar.clj:21)"
  "query_processor.middleware.binning$update_binning_strategy$fn__45975.invoke(binning.clj:229)"
  "query_processor.middleware.resolve_fields$resolve_fields$fn__46692.invoke(resolve_fields.clj:34)"
  "query_processor.middleware.add_dimension_projections$add_remapping$fn__44813.invoke(add_dimension_projections.clj:312)"
  "query_processor.middleware.add_implicit_clauses$add_implicit_clauses$fn__45042.invoke(add_implicit_clauses.clj:147)"
  "query_processor.middleware.upgrade_field_literals$upgrade_field_literals$fn__50030.invoke(upgrade_field_literals.clj:40)"
  "query_processor.middleware.add_source_metadata$add_source_metadata_for_source_queries$fn__45327.invoke(add_source_metadata.clj:123)"
  "query_processor.middleware.reconcile_breakout_and_order_by_bucketing$reconcile_breakout_and_order_by_bucketing$fn__49182.invoke(reconcile_breakout_and_order_by_bucketing.clj:100)"
  "query_processor.middleware.auto_bucket_datetimes$auto_bucket_datetimes$fn__45535.invoke(auto_bucket_datetimes.clj:147)"
  "query_processor.middleware.resolve_source_table$resolve_source_tables$fn__46739.invoke(resolve_source_table.clj:45)"
  "query_processor.middleware.parameters$substitute_parameters$fn__48992.invoke(parameters.clj:111)"
  "query_processor.middleware.resolve_referenced$resolve_referenced_card_resources$fn__46791.invoke(resolve_referenced.clj:79)"
  "query_processor.middleware.expand_macros$expand_macros$fn__47540.invoke(expand_macros.clj:184)"
  "query_processor.middleware.add_timezone_info$add_timezone_info$fn__45336.invoke(add_timezone_info.clj:15)"
  "query_processor.middleware.splice_params_in_response$splice_params_in_response$fn__49983.invoke(splice_params_in_response.clj:32)"
  "query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__49193$fn__49197.invoke(resolve_database_and_driver.clj:31)"
  "driver$do_with_driver.invokeStatic(driver.clj:60)"
  "driver$do_with_driver.invoke(driver.clj:56)"
  "query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__49193.invoke(resolve_database_and_driver.clj:25)"
  "query_processor.middleware.fetch_source_query$resolve_card_id_source_tables$fn__47780.invoke(fetch_source_query.clj:274)"
  "query_processor.middleware.store$initialize_store$fn__49992$fn__49993.invoke(store.clj:11)"
  "query_processor.store$do_with_store.invokeStatic(store.clj:44)"
  "query_processor.store$do_with_store.invoke(store.clj:38)"
  "query_processor.middleware.store$initialize_store$fn__49992.invoke(store.clj:10)"
  "query_processor.middleware.validate$validate_query$fn__50037.invoke(validate.clj:10)"
  "query_processor.middleware.normalize_query$normalize$fn__47916.invoke(normalize_query.clj:22)"
  "query_processor.middleware.add_rows_truncated$add_rows_truncated$fn__45182.invoke(add_rows_truncated.clj:35)"
  "query_processor.middleware.results_metadata$record_and_return_metadata_BANG_$fn__49968.invoke(results_metadata.clj:147)"
  "query_processor.middleware.constraints$add_default_userland_constraints$fn__47033.invoke(constraints.clj:42)"
  "query_processor.middleware.process_userland_query$process_userland_query$fn__49079.invoke(process_userland_query.clj:134)"
  "query_processor.middleware.catch_exceptions$catch_exceptions$fn__46973.invoke(catch_exceptions.clj:173)"
  "query_processor.reducible$async_qp$qp_STAR___38255$thunk__38256.invoke(reducible.clj:103)"
  "query_processor.reducible$async_qp$qp_STAR___38255.invoke(reducible.clj:109)"
  "query_processor.reducible$async_qp$qp_STAR___38255.invoke(reducible.clj:96)"
  "query_processor.reducible$sync_qp$qp_STAR___38264$fn__38265.invoke(reducible.clj:131)"
  "query_processor.reducible$sync_qp$qp_STAR___38264.invoke(reducible.clj:130)"
  "query_processor$process_userland_query.invokeStatic(query_processor.clj:241)"
  "query_processor$process_userland_query.doInvoke(query_processor.clj:237)"
  "query_processor$fn__50127$process_query_and_save_execution_BANG___50136$fn__50137.invoke(query_processor.clj:250)"
  "query_processor$fn__50127$process_query_and_save_execution_BANG___50136.invoke(query_processor.clj:245)"
  "query_processor$fn__50171$process_query_and_save_with_max_results_constraints_BANG___50180$fn__50181.invoke(query_processor.clj:262)"
  "query_processor$fn__50171$process_query_and_save_with_max_results_constraints_BANG___50180.invoke(query_processor.clj:258)"
  "pulse$execute_dashboard_subscription_card$fn__73037$fn__73038.doInvoke(pulse.clj:88)"
  "api.card$run_query_for_card_async.invokeStatic(card.clj:640)"
  "api.card$run_query_for_card_async.doInvoke(card.clj:613)"
  "pulse$execute_dashboard_subscription_card$fn__73037.invoke(pulse.clj:81)"
  "server.middleware.session$do_with_current_user.invokeStatic(session.clj:238)"
  "server.middleware.session$do_with_current_user.invoke(session.clj:230)"
  "pulse$execute_dashboard_subscription_card.invokeStatic(pulse.clj:80)"
  "pulse$execute_dashboard_subscription_card.invoke(pulse.clj:69)"
  "pulse$execute_dashboard$iter__73050__73054$fn__73055.invoke(pulse.clj:110)"
  "pulse$fn__73178.invokeStatic(pulse.clj:236)"
  "pulse$fn__73178.invoke(pulse.clj:231)"
  "pulse$results__GT_notifications$iter__73210__73214$fn__73215.invoke(pulse.clj:284)"
  "pulse$send_notifications_BANG_.invokeStatic(pulse.clj:326)"
  "pulse$send_notifications_BANG_.invoke(pulse.clj:325)"
  "pulse$send_pulse_BANG_.invokeStatic(pulse.clj:352)"
  "pulse$send_pulse_BANG_.doInvoke(pulse.clj:334)"
  "api.pulse$fn__73745.invokeStatic(pulse.clj:215)"
  "api.pulse$fn__73745.invoke(pulse.clj:204)"
  "server.middleware.auth$enforce_authentication$fn__77073.invoke(auth.clj:14)"
  "api.routes$fn__77139$fn__77141.invoke(routes.clj:70)"
  "server.routes$fn__79375$fn__79376.doInvoke(routes.clj:57)"
  "server.routes$fn__79363$fn__79365.invoke(routes.clj:41)"
  "server.middleware.exceptions$catch_uncaught_exceptions$fn__77130.invoke(exceptions.clj:98)"
  "server.middleware.exceptions$catch_api_exceptions$fn__77127.invoke(exceptions.clj:86)"
  "server.middleware.log$log_api_call$fn__79289$fn__79290$fn__79291.invoke(log.clj:209)"
  "driver.sql_jdbc.execute.diagnostic$do_with_diagnostic_info.invokeStatic(diagnostic.clj:15)"
  "driver.sql_jdbc.execute.diagnostic$do_with_diagnostic_info.invoke(diagnostic.clj:9)"
  "server.middleware.log$log_api_call$fn__79289$fn__79290.invoke(log.clj:201)"
  "server.middleware.log$log_api_call$fn__79289.invoke(log.clj:200)"
  "server.middleware.browser_cookie$ensure_browser_id_cookie$fn__78908.invoke(browser_cookie.clj:30)"
  "server.middleware.security$add_security_headers$fn__57741.invoke(security.clj:148)"
  "server.middleware.json$wrap_json_body$fn__79053.invoke(json.clj:62)"
  "server.middleware.json$wrap_streamed_json_response$fn__79071.invoke(json.clj:98)"
  "server.middleware.offset_paging$handle_paging$fn__57763.invoke(offset_paging.clj:42)"
  "server.middleware.misc$maybe_set_site_url$fn__36092.invoke(misc.clj:59)"
  "server.middleware.session$bind_current_user$fn__42990$fn__42991.invoke(session.clj:257)"
  "server.middleware.session$do_with_current_user.invokeStatic(session.clj:238)"
  "server.middleware.session$do_with_current_user.invoke(session.clj:230)"
  "server.middleware.session$bind_current_user$fn__42990.invoke(session.clj:256)"
  "server.middleware.session$wrap_current_user_info$fn__42977.invoke(session.clj:216)"
  "server.middleware.session$wrap_session_id$fn__42963.invoke(session.clj:162)"
  "server.middleware.auth$wrap_api_key$fn__77081.invoke(auth.clj:27)"
  "server.middleware.misc$add_content_type$fn__36075.invoke(misc.clj:27)"
  "server.middleware.misc$disable_streaming_buffering$fn__36100.invoke(misc.clj:76)"
  "server.middleware.misc$bind_request$fn__36103.invoke(misc.clj:93)"
  "server.middleware.ssl$redirect_to_https_middleware$fn__79308.invoke(ssl.clj:38)"
  "server$async_proxy_handler$fn__78852.invoke(server.clj:71)"
  "server.proxy$org.eclipse.jetty.server.handler.AbstractHandler$ff19274a.handle(Unknown Source)"],
 :context :pulse,
 :error "You do not have permissions to run this query.",
 :row_count 0,
 :running_time 0,
 :ex-data
 {:type :missing-required-permissions,
  :required-permissions #{"/db/2/native/"},
  :actual-permissions #{"/collection/4/read/" "/collection/2/" "/db/1/" "/db/1/native/" "/db/1/schema/"},
  :permissions-error? true},
 :data {:rows [], :cols []}}

2021-09-22 14:16:53,844 ERROR pulse.render :: Pulse card render error
clojure.lang.ExceptionInfo: Card has errors: You do not have permissions to run this query. {:database_id 2, :started_at #t "2021-09-22T14:16:53.489+02:00[Europe/Paris]", :error_type :missing-required-permissions, :json_query {:constraints {:max-results 10000, :max-results-bare-rows 2000}, :type :native, :middleware {:js-int-to-string? true, :ignore-cached-results? nil, :add-default-userland-constraints? true}, :native {:query "select count(*) XXXXXXXXXXXXX\n", :template-tags {}}, :database 2, :parameters (), :async? false, :cache-ttl 16}, :status :failed, :class clojure.lang.ExceptionInfo, :stacktrace ["--> query_processor.middleware.permissions$perms_exception.invokeStatic(permissions.clj:27)" "query_processor.middleware.permissions$perms_exception.doInvoke(permissions.clj:22)" "query_processor.middleware.permissions$perms_exception.invokeStatic(permissions.clj:24)" "query_processor.middleware.permissions$perms_exception.invoke(permissions.clj:22)" "query_processor.middleware.permissions$fn__46833$check_ad_hoc_query_perms__46838$fn__46842.invoke(permissions.clj:60)" "query_processor.middleware.permissions$fn__46833$check_ad_hoc_query_perms__46838.invoke(permissions.clj:49)" "query_processor.middleware.permissions$fn__46870$check_query_permissions_STAR___46875$fn__46876.invoke(permissions.clj:71)" "query_processor.middleware.permissions$fn__46870$check_query_permissions_STAR___46875.invoke(permissions.clj:64)" "query_processor.middleware.permissions$check_query_permissions$fn__46889.invoke(permissions.clj:80)" "query_processor.middleware.pre_alias_aggregations$pre_alias_aggregations$fn__49010.invoke(pre_alias_aggregations.clj:40)" "query_processor.middleware.cumulative_aggregations$handle_cumulative_aggregations$fn__47090.invoke(cumulative_aggregations.clj:60)" "query_processor.middleware.resolve_joined_fields$resolve_joined_fields$fn__49307.invoke(resolve_joined_fields.clj:102)" "query_processor.middleware.resolve_joins$resolve_joins$fn__49620.invoke(resolve_joins.clj:171)" "query_processor.middleware.add_implicit_joins$add_implicit_joins$fn__45164.invoke(add_implicit_joins.clj:190)" "query_processor.middleware.large_int_id$convert_id_to_string$fn__47853.invoke(large_int_id.clj:59)" "query_processor.middleware.format_rows$format_rows$fn__47834.invoke(format_rows.clj:74)" "query_processor.middleware.add_default_temporal_unit$add_default_temporal_unit$fn__44458.invoke(add_default_temporal_unit.clj:23)" "query_processor.middleware.desugar$desugar$fn__47156.invoke(desugar.clj:21)" "query_processor.middleware.binning$update_binning_strategy$fn__45975.invoke(binning.clj:229)" "query_processor.middleware.resolve_fields$resolve_fields$fn__46692.invoke(resolve_fields.clj:34)" "query_processor.middleware.add_dimension_projections$add_remapping$fn__44813.invoke(add_dimension_projections.clj:312)" "query_processor.middleware.add_implicit_clauses$add_implicit_clauses$fn__45042.invoke(add_implicit_clauses.clj:147)" "query_processor.middleware.upgrade_field_literals$upgrade_field_literals$fn__50030.invoke(upgrade_field_literals.clj:40)" "query_processor.middleware.add_source_metadata$add_source_metadata_for_source_queries$fn__45327.invoke(add_source_metadata.clj:123)" "query_processor.middleware.reconcile_breakout_and_order_by_bucketing$reconcile_breakout_and_order_by_bucketing$fn__49182.invoke(reconcile_breakout_and_order_by_bucketing.clj:100)" "query_processor.middleware.auto_bucket_datetimes$auto_bucket_datetimes$fn__45535.invoke(auto_bucket_datetimes.clj:147)" "query_processor.middleware.resolve_source_table$resolve_source_tables$fn__46739.invoke(resolve_source_table.clj:45)" "query_processor.middleware.parameters$substitute_parameters$fn__48992.invoke(parameters.clj:111)" "query_processor.middleware.resolve_referenced$resolve_referenced_card_resources$fn__46791.invoke(resolve_referenced.clj:79)" "query_processor.middleware.expand_macros$expand_macros$fn__47540.invoke(expand_macros.clj:184)" "query_processor.middleware.add_timezone_info$add_timezone_info$fn__45336.invoke(add_timezone_info.clj:15)" "query_processor.middleware.splice_params_in_response$splice_params_in_response$fn__49983.invoke(splice_params_in_response.clj:32)" "query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__49193$fn__49197.invoke(resolve_database_and_driver.clj:31)" "driver$do_with_driver.invokeStatic(driver.clj:60)" "driver$do_with_driver.invoke(driver.clj:56)" "query_processor.middleware.resolve_database_and_driver$resolve_database_and_driver$fn__49193.invoke(resolve_database_and_driver.clj:25)" "query_processor.middleware.fetch_source_query$resolve_card_id_source_tables$fn__47780.invoke(fetch_source_query.clj:274)" "query_processor.middleware.store$initialize_store$fn__49992$fn__49993.invoke(store.clj:11)" "query_processor.store$do_with_store.invokeStatic(store.clj:44)" "query_processor.store$do_with_store.invoke(store.clj:38)" "query_processor.middleware.store$initialize_store$fn__49992.invoke(store.clj:10)" "query_processor.middleware.validate$validate_query$fn__50037.invoke(validate.clj:10)" "query_processor.middleware.normalize_query$normalize$fn__47916.invoke(normalize_query.clj:22)" "query_processor.middleware.add_rows_truncated$add_rows_truncated$fn__45182.invoke(add_rows_truncated.clj:35)" "query_processor.middleware.results_metadata$record_and_return_metadata_BANG_$fn__49968.invoke(results_metadata.clj:147)" "query_processor.middleware.constraints$add_default_userland_constraints$fn__47033.invoke(constraints.clj:42)" "query_processor.middleware.process_userland_query$process_userland_query$fn__49079.invoke(process_userland_query.clj:134)" "query_processor.middleware.catch_exceptions$catch_exceptions$fn__46973.invoke(catch_exceptions.clj:173)" "query_processor.reducible$async_qp$qp_STAR___38255$thunk__38256.invoke(reducible.clj:103)" "query_processor.reducible$async_qp$qp_STAR___38255.invoke(reducible.clj:109)" "query_processor.reducible$async_qp$qp_STAR___38255.invoke(reducible.clj:96)" "query_processor.reducible$sync_qp$qp_STAR___38264$fn__38265.invoke(reducible.clj:131)" "query_processor.reducible$sync_qp$qp_STAR___38264.invoke(reducible.clj:130)" "query_processor$process_userland_query.invokeStatic(query_processor.clj:241)" "query_processor$process_userland_query.doInvoke(query_processor.clj:237)" "query_processor$fn__50127$process_query_and_save_execution_BANG___50136$fn__50137.invoke(query_processor.clj:250)" "query_processor$fn__50127$process_query_and_save_execution_BANG___50136.invoke(query_processor.clj:245)" "query_processor$fn__50171$process_query_and_save_with_max_results_constraints_BANG___50180$fn__50181.invoke(query_processor.clj:262)" "query_processor$fn__50171$process_query_and_save_with_max_results_constraints_BANG___50180.invoke(query_processor.clj:258)" "pulse$execute_dashboard_subscription_card$fn__73037$fn__73038.doInvoke(pulse.clj:88)" "api.card$run_query_for_card_async.invokeStatic(card.clj:640)" "api.card$run_query_for_card_async.doInvoke(card.clj:613)" "pulse$execute_dashboard_subscription_card$fn__73037.invoke(pulse.clj:81)" "server.middleware.session$do_with_current_user.invokeStatic(session.clj:238)" "server.middleware.session$do_with_current_user.invoke(session.clj:230)" "pulse$execute_dashboard_subscription_card.invokeStatic(pulse.clj:80)" "pulse$execute_dashboard_subscription_card.invoke(pulse.clj:69)" "pulse$execute_dashboard$iter__73050__73054$fn__73055.invoke(pulse.clj:110)" "pulse$fn__73178.invokeStatic(pulse.clj:236)" "pulse$fn__73178.invoke(pulse.clj:231)" "pulse$results__GT_notifications$iter__73210__73214$fn__73215.invoke(pulse.clj:284)" "pulse$send_notifications_BANG_.invokeStatic(pulse.clj:326)" "pulse$send_notifications_BANG_.invoke(pulse.clj:325)" "pulse$send_pulse_BANG_.invokeStatic(pulse.clj:352)" "pulse$send_pulse_BANG_.doInvoke(pulse.clj:334)" "api.pulse$fn__73745.invokeStatic(pulse.clj:215)" "api.pulse$fn__73745.invoke(pulse.clj:204)" "server.middleware.auth$enforce_authentication$fn__77073.invoke(auth.clj:14)" "api.routes$fn__77139$fn__77141.invoke(routes.clj:70)" "server.routes$fn__79375$fn__79376.doInvoke(routes.clj:57)" "server.routes$fn__79363$fn__79365.invoke(routes.clj:41)" "server.middleware.exceptions$catch_uncaught_exceptions$fn__77130.invoke(exceptions.clj:98)" "server.middleware.exceptions$catch_api_exceptions$fn__77127.invoke(exceptions.clj:86)" "server.middleware.log$log_api_call$fn__79289$fn__79290$fn__79291.invoke(log.clj:209)" "driver.sql_jdbc.execute.diagnostic$do_with_diagnostic_info.invokeStatic(diagnostic.clj:15)" "driver.sql_jdbc.execute.diagnostic$do_with_diagnostic_info.invoke(diagnostic.clj:9)" "server.middleware.log$log_api_call$fn__79289$fn__79290.invoke(log.clj:201)" "server.middleware.log$log_api_call$fn__79289.invoke(log.clj:200)" "server.middleware.browser_cookie$ensure_browser_id_cookie$fn__78908.invoke(browser_cookie.clj:30)" "server.middleware.security$add_security_headers$fn__57741.invoke(security.clj:148)" "server.middleware.json$wrap_json_body$fn__79053.invoke(json.clj:62)" "server.middleware.json$wrap_streamed_json_response$fn__79071.invoke(json.clj:98)" "server.middleware.offset_paging$handle_paging$fn__57763.invoke(offset_paging.clj:42)" "server.middleware.misc$maybe_set_site_url$fn__36092.invoke(misc.clj:59)" "server.middleware.session$bind_current_user$fn__42990$fn__42991.invoke(session.clj:257)" "server.middleware.session$do_with_current_user.invokeStatic(session.clj:238)" "server.middleware.session$do_with_current_user.invoke(session.clj:230)" "server.middleware.session$bind_current_user$fn__42990.invoke(session.clj:256)" "server.middleware.session$wrap_current_user_info$fn__42977.invoke(session.clj:216)" "server.middleware.session$wrap_session_id$fn__42963.invoke(session.clj:162)" "server.middleware.auth$wrap_api_key$fn__77081.invoke(auth.clj:27)" "server.middleware.misc$add_content_type$fn__36075.invoke(misc.clj:27)" "server.middleware.misc$disable_streaming_buffering$fn__36100.invoke(misc.clj:76)" "server.middleware.misc$bind_request$fn__36103.invoke(misc.clj:93)" "server.middleware.ssl$redirect_to_https_middleware$fn__79308.invoke(ssl.clj:38)" "server$async_proxy_handler$fn__78852.invoke(server.clj:71)" "server.proxy$org.eclipse.jetty.server.handler.AbstractHandler$ff19274a.handle(Unknown Source)"], :context :pulse, :error "You do not have permissions to run this query.", :row_count 0, :running_time 0, :ex-data {:type :missing-required-permissions, :required-permissions #{"/db/2/native/"}, :actual-permissions #{"/collection/4/read/" "/collection/2/" "/db/1/" "/db/1/native/" "/db/1/schema/"}, :permissions-error? true}, :data {:rows [], :cols []}}
	at metabase.pulse.render$fn__52543$render_pulse_card_body__52548$fn__52552.invoke(render.clj:97)
	at metabase.pulse.render$fn__52543$render_pulse_card_body__52548.invoke(render.clj:93)
	at metabase.pulse.render$fn__52579$render_pulse_card__52584$fn__52585.invoke(render.clj:116)
	at metabase.pulse.render$fn__52579$render_pulse_card__52584.invoke(render.clj:112)
	at metabase.pulse.render$fn__52606$render_pulse_section__52611$fn__52617$fn__52621.invoke(render.clj:139)
	at metabase.pulse.render$fn__52606$render_pulse_section__52611$fn__52617.invoke(render.clj:138)
	at metabase.pulse.render$fn__52606$render_pulse_section__52611.invoke(render.clj:135)
	at metabase.email.messages$render_message_body$fn__53324$fn__53325.invoke(messages.clj:391)
	at clojure.core$mapv$fn__8445.invoke(core.clj:6912)
	at clojure.core.protocols$fn__8159.invokeStatic(protocols.clj:168)
	at clojure.core.protocols$fn__8159.invoke(protocols.clj:124)
	at clojure.core.protocols$fn__8114$G__8109__8123.invoke(protocols.clj:19)
	at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31)
	at clojure.core.protocols$fn__8146.invokeStatic(protocols.clj:75)
	at clojure.core.protocols$fn__8146.invoke(protocols.clj:75)
	at clojure.core.protocols$fn__8088$G__8083__8101.invoke(protocols.clj:13)
	at clojure.core$reduce.invokeStatic(core.clj:6828)
	at clojure.core$mapv.invokeStatic(core.clj:6903)
	at clojure.core$mapv.invoke(core.clj:6903)
	at metabase.email.messages$render_message_body$fn__53324.invoke(messages.clj:391)
	at metabase.email.messages$render_message_body.invokeStatic(messages.clj:390)
	at metabase.email.messages$render_message_body.invoke(messages.clj:389)
	at metabase.email.messages$render_pulse_email.invokeStatic(messages.clj:406)
	at metabase.email.messages$render_pulse_email.invoke(messages.clj:403)
	at metabase.pulse$fn__73178.invokeStatic(pulse.clj:240)
	at metabase.pulse$fn__73178.invoke(pulse.clj:231)
	at clojure.lang.MultiFn.invoke(MultiFn.java:239)
	at metabase.pulse$results__GT_notifications$iter__73210__73214$fn__73215.invoke(pulse.clj:284)
	at clojure.lang.LazySeq.sval(LazySeq.java:42)
	at clojure.lang.LazySeq.seq(LazySeq.java:51)
	at clojure.lang.RT.seq(RT.java:535)
	at clojure.core$seq__5402.invokeStatic(core.clj:137)
	at clojure.core$seq__5402.invoke(core.clj:137)
	at metabase.pulse$send_notifications_BANG_.invokeStatic(pulse.clj:326)
	at metabase.pulse$send_notifications_BANG_.invoke(pulse.clj:325)
	at metabase.pulse$send_pulse_BANG_.invokeStatic(pulse.clj:352)
	at metabase.pulse$send_pulse_BANG_.doInvoke(pulse.clj:334)
	at clojure.lang.RestFn.invoke(RestFn.java:410)
	at metabase.api.pulse$fn__73745.invokeStatic(pulse.clj:215)
	at metabase.api.pulse$fn__73745.invoke(pulse.clj:204)
	at compojure.core$wrap_response$fn__1996.invoke(core.clj:160)
	at compojure.core$wrap_route_middleware$fn__1980.invoke(core.clj:132)
	at compojure.core$wrap_route_info$fn__1985.invoke(core.clj:139)
	at compojure.core$wrap_route_matches$fn__1989.invoke(core.clj:151)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$wrap_route_matches$fn__1989.invoke(core.clj:153)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$wrap_route_matches$fn__1989.invoke(core.clj:153)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$wrap_route_matches$fn__1989.invoke(core.clj:153)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$wrap_route_matches$fn__1989.invoke(core.clj:152)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008.invoke(core.clj:200)
	at metabase.server.middleware.auth$enforce_authentication$fn__77073.invoke(auth.clj:14)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008.invoke(core.clj:200)
	at compojure.core$make_context$handler__2036.invoke(core.clj:287)
	at compojure.core$make_context$fn__2038.invoke(core.clj:296)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$make_context$fn__2038.invoke(core.clj:297)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at metabase.api.routes$fn__77139$fn__77141.invoke(routes.clj:70)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008.invoke(core.clj:200)
	at clojure.lang.AFn.applyToHelper(AFn.java:160)
	at clojure.lang.AFn.applyTo(AFn.java:144)
	at clojure.core$apply.invokeStatic(core.clj:665)
	at clojure.core$apply.invoke(core.clj:660)
	at metabase.server.routes$fn__79375$fn__79376.doInvoke(routes.clj:57)
	at clojure.lang.RestFn.invoke(RestFn.java:436)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008.invoke(core.clj:200)
	at compojure.core$make_context$handler__2036.invoke(core.clj:287)
	at compojure.core$make_context$fn__2038.invoke(core.clj:296)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$wrap_route_matches$fn__1989.invoke(core.clj:153)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$wrap_route_matches$fn__1989.invoke(core.clj:153)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at compojure.core$wrap_route_matches$fn__1989.invoke(core.clj:153)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
	at metabase.server.routes$fn__79363$fn__79365.invoke(routes.clj:41)
	at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
	at compojure.core$routes$fn__2008.invoke(core.clj:200)
	at metabase.server.middleware.exceptions$catch_uncaught_exceptions$fn__77130.invoke(exceptions.clj:98)
	at metabase.server.middleware.exceptions$catch_api_exceptions$fn__77127.invoke(exceptions.clj:86)
	at metabase.server.middleware.log$log_api_call$fn__79289$fn__79290$fn__79291.invoke(log.clj:209)
	at metabase.driver.sql_jdbc.execute.diagnostic$do_with_diagnostic_info.invokeStatic(diagnostic.clj:15)
	at metabase.driver.sql_jdbc.execute.diagnostic$do_with_diagnostic_info.invoke(diagnostic.clj:9)
	at metabase.server.middleware.log$log_api_call$fn__79289$fn__79290.invoke(log.clj:201)
	at toucan.db$_do_with_call_counting.invokeStatic(db.clj:216)
	at toucan.db$_do_with_call_counting.invoke(db.clj:209)
	at metabase.server.middleware.log$log_api_call$fn__79289.invoke(log.clj:200)
	at metabase.server.middleware.browser_cookie$ensure_browser_id_cookie$fn__78908.invoke(browser_cookie.clj:30)
	at metabase.server.middleware.security$add_security_headers$fn__57741.invoke(security.clj:148)
	at metabase.server.middleware.json$wrap_json_body$fn__79053.invoke(json.clj:62)
	at metabase.server.middleware.json$wrap_streamed_json_response$fn__79071.invoke(json.clj:98)
	at metabase.server.middleware.offset_paging$handle_paging$fn__57763.invoke(offset_paging.clj:42)
	at ring.middleware.keyword_params$wrap_keyword_params$fn__79632.invoke(keyword_params.clj:55)
	at ring.middleware.params$wrap_params$fn__79648.invoke(params.clj:69)
	at metabase.server.middleware.misc$maybe_set_site_url$fn__36092.invoke(misc.clj:59)
	at metabase.server.middleware.session$bind_current_user$fn__42990$fn__42991.invoke(session.clj:257)
	at metabase.server.middleware.session$do_with_current_user.invokeStatic(session.clj:238)
	at metabase.server.middleware.session$do_with_current_user.invoke(session.clj:230)
	at metabase.server.middleware.session$bind_current_user$fn__42990.invoke(session.clj:256)
	at metabase.server.middleware.session$wrap_current_user_info$fn__42977.invoke(session.clj:216)
	at metabase.server.middleware.session$wrap_session_id$fn__42963.invoke(session.clj:162)
	at metabase.server.middleware.auth$wrap_api_key$fn__77081.invoke(auth.clj:27)
	at ring.middleware.cookies$wrap_cookies$fn__79552.invoke(cookies.clj:216)
	at metabase.server.middleware.misc$add_content_type$fn__36075.invoke(misc.clj:27)
	at metabase.server.middleware.misc$disable_streaming_buffering$fn__36100.invoke(misc.clj:76)
	at ring.middleware.gzip$wrap_gzip$fn__79594.invoke(gzip.clj:86)
	at metabase.server.middleware.misc$bind_request$fn__36103.invoke(misc.clj:93)
	at metabase.server.middleware.ssl$redirect_to_https_middleware$fn__79308.invoke(ssl.clj:38)
	at metabase.server$async_proxy_handler$fn__78852.invoke(server.clj:71)
	at metabase.server.proxy$org.eclipse.jetty.server.handler.AbstractHandler$ff19274a.handle(Unknown Source)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:516)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
	at java.lang.Thread.run(Thread.java:748)
2021-09-22 14:16:53,875 INFO api.card :: Question's average execution duration is 155,0 ms; using 'magic' TTL of 2,0 s 

I hid my SQL native query in the log, but there are no metabase field filter in my queries (some bug has already been reported on the site on that subject but it's not the case here I think).
The collection number 4 is my subcollection from which I have read permission, the collection number 2 is my personal collection (the database 1 is the sample dataset).
I tried too to duplicate in my personal collection the dashboard, I have the same problem during the sending of email via its dashboard subscription.
I have no such problem when I send email from a dashboard subscription in a dashboard in my personal collection, where this dashboard contains native questions to a database where I have all the permissions (the sample dataset in this case).

Another problem:
when I try to create a pulse with this user, I can't access to the questions of the subcollection where I have only read permission (and no permission to the db) in the pulse form. Maybe those 2 problems are linked...

Do you think those problems could be solved in a future version? do you have workaround at that time?

Thanks a lot in advance, Best regards

Hi @ceauf
There are a lot of changes to how subscriptions work.
But that is definitely a bug. I've created an issue for it:
https://github.com/metabase/metabase/issues/18009 - upvote by clicking :+1: on the first post

Second problem sounds like: https://github.com/metabase/metabase/issues/11605
Will likely never be fixed, since Pulses are being deprecated.

Hi @flamber,
thanks a lot for your prompt answer! I've upvoted the issue you created.

Concerning the second problem, indeed it seems to be the same issue you mentioned, but the workaround isn't working for me.

For my information, as pulses are being deprecated, in the future if I want to send by mail a report for a unique question, I must create a dashboard with this single question and use dashboard subscription?
Thanks again in advance
Best regards

@ceauf I don't know which workaround you are referring to in the second problem. There isn't any workaround besides giving edit-access to the collection from what I can see.

It's not completely finalized how Pulses are being deprecated and which other Subscription options there will be.

Thank you for the complementary informations @flamber

Just for information, I read the workaround in this post: Can't create pulse for View only collection questions
"A workaround is to use the little search (top-right) on the picker and search for the question name."
but it doesn't work for me.
I'll wait for the resolution of the first issue and I'll follow the evolution of dashboard subscriptions for the second problem.

Thanks again and regards

@ceauf Silly person who wrote that workaround :wink: A lot has changed the past two years, so the search now uses the same permission levels.

@flamber I'm sorry... I just wanted to understand :slightly_smiling_face:
Thanks for your precious help! :smiley:
Regards