<@U088WCP3B4P> hope you would be able to help out ...
# ask-elementary-ai
d
@kapa.ai hope you would be able to help out with resolving an edr_monitor error, we recently got this test error that couldn't send to channel, however I've checked the slack integration has permissions and is a part of the channel, it's hard to make out what else to try based off the error message, any ideas here?
Copy code
ERROR:elementary.monitor.data_monitoring.alerts.data_monitoring_alerts:Could not send the alert - <class 'elementary.monitor.alerts.test_alert.TestAlertModel'>.
2025-10-02 15:13:26 — ERROR — Could not send the alert - c0fc6f77-0e57-4785-a330-fe0245726124.test.prodigy_dbt.unique_growthbook_student_activation_user_id.b89ed40fa6. Full alert: {"id": "c0fc6f77-0e57-4785-a330-fe0245726124.test.prodigy_dbt.unique_growthbook_student_activation_user_id.b89ed40fa6", "alert_class_id": "test.prodigy_dbt.unique_growthbook_student_activation_user_id.b89ed40fa6.user_id.generic", "model_unique_id": "model.prodigy_dbt.growthbook_student_activation", "detected_at": "2025-10-02 05:14:20 EDT", "database_name": "production", "schema_name": "gold", "owners": ["Non-Game Data"], "tags": ["daily", "dbt"], "subscribers": [], "status": "fail", "suppression_interval": 16, "test_unique_id": "test.prodigy_dbt.unique_growthbook_student_activation_user_id.b89ed40fa6", "elementary_unique_id": "test.prodigy_dbt.unique_growthbook_student_activation_user_id.b89ed40fa6.user_id.generic", "test_name": "unique_growthbook_student_activation_user_id", "test_display_name": "Unique Growthbook Student Activation User Id", "severity": "ERROR", "table_name": "growthbook_student_activation", "table_full_name": "production.gold.growthbook_student_activation", "test_type": "dbt_test", "test_sub_type": "generic", "test_sub_type_display_name": "Generic", "test_results_description": "Got 1 result, configured to fail if != 0", "test_results_query": "select\n    user_id as unique_field,\n    count(*) as n_records\n\nfrom production.gold.growthbook_student_activation\nwhere user_id is not null\ngroup by user_id\nhaving count(*) > 1", "test_short_name": "unique", "test_description": "This test validates that there are no duplicate values present in a field.", "other": {}, "test_params": {"column_name": "user_id", "model": "{{ get_where_subquery(ref('growthbook_student_activation')) }}"}, "test_rows_sample": [], "column_name": "user_id", "env": "prod"}
on 1: ERROR:elementary.monitor.data_monitoring.alerts.data_monitoring_alerts:Could not send the alert - c0fc6f77-0e57-4785-a330-fe0245726124.test.prodigy_dbt.unique_growthbook_student_activation_user_id.b89ed40fa6. Full alert: {"id": "c0fc6f77-0e57-4785-a330-fe0245726124.test.prodigy_dbt.unique_growthbook_student_activation_user_id.b89ed40fa6", "alert_class_id": "test.prodigy_dbt.unique_growthbook_student_activation_user_id.b89ed40fa6.user_id.generic", "model_unique_id": "model.prodigy_dbt.growthbook_student_activation", "detected_at": "2025-10-02 05:14:20 EDT", "database_name": "production", "schema_name": "gold", "owners": ["Non-Game Data"], "tags": ["daily", "dbt"], "subscribers": [], "status": "fail", "suppression_interval": 16, "test_unique_id": "test.prodigy_dbt.unique_growthbook_student_activation_user_id.b89ed40fa6", "elementary_unique_id": "test.prodigy_dbt.unique_growthbook_student_activation_user_id.b89ed40fa6.user_id.generic", "test_name": "unique_growthbook_student_activation_user_id", "test_display_name": "Unique Growthbook Student Activation User Id", "severity": "ERROR", "table_name": "growthbook_student_activation", "table_full_name": "production.gold.growthbook_student_activation", "test_type": "dbt_test", "test_sub_type": "generic", "test_sub_type_display_name": "Generic", "test_results_description": "Got 1 result, configured to fail if != 0", "test_results_query": "select\n    user_id as unique_field,\n    count(*) as n_records\n\nfrom production.gold.growthbook_student_activation\nwhere user_id is not null\ngroup by user_id\nhaving count(*) > 1", "test_short_name": "unique", "test_description": "This test validates that there are no duplicate values present in a field.", "other": {}, "test_params": {"column_name": "user_id", "model": "{{ get_where_subquery(ref('growthbook_student_activation')) }}"}, "test_rows_sample": [], "column_name": "user_id", "env": "prod"}
k
A message from kapa.ai
Based on the error message and your description, here are some targeted troubleshooting steps and considerations, referencing known issues and solutions from the knowledge sources: 1. Slack App Permissions and Channel Access You mentioned that the Slack integration has permissions and is part of the channel. Double-check that: - The Elementary Slack app is invited to the specific channel (especially if it's private). This is a common cause for "could not send the alert" errors, even if permissions look correct. You must manually invite the app to private channels after installation. - The Slack token used is a Bot User OAuth Token (starts with
xoxb-
) and not an App-Level token, as only Bot tokens are supported for sending messages via the API. Using the wrong token type can result in errors like
not_allowed_token_type
or
invalid_auth
[Slack integration setup](https://docs.elementary-data.com/oss/deployment-and-configuration/slack). 2. Token and Channel Name - Ensure the channel name is correct and does not include the
#
symbol (just use the channel name, e.g.,
alerts-marketing-data
). - If you see errors like
invalid_auth
or
channel_not_found
, it often means the token is invalid, expired, or not authorized for the workspace or channel [Slack integration setup](https://docs.elementary-data.com/oss/deployment-and-configuration/slack). 3. Alert Configuration - If you are using custom alert configurations in your dbt model or test YAML, ensure there are no syntax errors or misconfigurations. Invalid YAML or misconfigured
alerts_config
can cause alert extraction or sending to fail [Slack forum user question](https://slack.com/archives/C02CTC89LAX/p1678867969051109). - If you have recently changed alert configuration, try reverting to a previous working state to isolate the issue. 4. Elementary Version and Known Issues - Some versions of Elementary had bugs related to alert sending and Slack integration. If you are not on the latest stable version, consider upgrading, as several Slack-related issues have been fixed in recent releases [Slack forum user question](https://slack.com/archives/C02CTC89LAX/p1685699058896329). 5. Check for More Detailed Error Output - Sometimes, the error message in the logs is generic. Check the
edr.log
file for more detailed error output, which may include Slack API responses (e.g.,
invalid_auth
,
channel_not_found
,
no_text
). These can help pinpoint the root cause [Slack forum user question](https://slack.com/archives/C02CTC89LAX/p1720611720819759). 6. Slack API Requirements - The Slack API requires a
text
field in the message payload. If this is missing, you may see a
no_text
error. This is usually handled by Elementary, but if you have customized alert templates or are on an older version, this could be a factor [Slack forum user question](https://slack.com/archives/C02CTC89LAX/p1720611720819759). Summary of Next Steps: - Confirm the Slack app is invited to the channel. - Verify you are using a Bot User OAuth Token, not an App-Level token. - Double-check the channel name and token validity. - Review your alert configuration for errors. - Check the
edr.log
for more specific error messages. - Consider upgrading Elementary if you are not on the latest version. If after these steps the issue persists, please share the relevant section of your
edr.log
and your alert configuration for further troubleshooting. Let me know if you need more specific guidance on any of these steps!
d
@kapa.ai thanks we've tried all of that except for upgrading, we're at 0.19.4 since that's the latest for the dbt package version, here's the output of the edr.log but I didn't notice any additional information in the error outputs
Copy code
2025-10-02 15:13:26 — INFO — Update sent alerts
2025-10-02 15:22:29 — INFO — Running with edr=0.19.4
2025-10-02 15:22:29 — INFO — edr internal dbt package is not up-to-date, updating it...
2025-10-02 15:22:29 — INFO — Running dbt command --log-format json deps --project-dir /Users/david.shi/Library/Caches/pypoetry/virtualenvs/dippr-grznMPux-py3.12/lib/python3.12/site-packages/elementary/monitor/dbt_project --target e2_prod
2025-10-02 15:22:31 — DEBUG — Running dbt command --log-format json run-operation elementary.log_macro_results --args {"macro_name": "elementary_cli.get_latest_invocation", "macro_args": {}} --project-dir /Users/david.shi/Library/Caches/pypoetry/virtualenvs/dippr-grznMPux-py3.12/lib/python3.12/site-packages/elementary/monitor/dbt_project --target e2_prod
2025-10-02 15:22:35 — DEBUG — Result bytes size for command '['--log-format', 'json', 'run-operation', 'elementary.log_macro_results', '--args', '{"macro_name": "elementary_cli.get_latest_invocation", "macro_args": {}}', '--project-dir', '/Users/david.shi/Library/Caches/pypoetry/virtualenvs/dippr-grznMPux-py3.12/lib/python3.12/site-packages/elementary/monitor/dbt_project', '--target', 'e2_prod']' is 3468
2025-10-02 15:22:35 — DEBUG — Running dbt command --log-format json run-operation elementary.log_macro_results --args {"macro_name": "elementary_cli.get_adapter_type_and_unique_id", "macro_args": {}} --project-dir /Users/david.shi/Library/Caches/pypoetry/virtualenvs/dippr-grznMPux-py3.12/lib/python3.12/site-packages/elementary/monitor/dbt_project --target e2_prod
2025-10-02 15:22:35 — DEBUG — Result bytes size for command '['--log-format', 'json', 'run-operation', 'elementary.log_macro_results', '--args', '{"macro_name": "elementary_cli.get_adapter_type_and_unique_id", "macro_args": {}}', '--project-dir', '/Users/david.shi/Library/Caches/pypoetry/virtualenvs/dippr-grznMPux-py3.12/lib/python3.12/site-packages/elementary/monitor/dbt_project', '--target', 'e2_prod']' is 542
2025-10-02 15:22:35 — INFO — edr (0.19.4) and Elementary's dbt package (0.19.0) are compatible.
2025-10-02 15:22:35 — DEBUG — Running dbt command --log-format json run-operation elementary.log_macro_results --args {"macro_name": "elementary_cli.get_elementary_database_and_schema", "macro_args": {}} --project-dir /Users/david.shi/Library/Caches/pypoetry/virtualenvs/dippr-grznMPux-py3.12/lib/python3.12/site-packages/elementary/monitor/dbt_project --target e2_prod
2025-10-02 15:22:35 — DEBUG — Result bytes size for command '['--log-format', 'json', 'run-operation', 'elementary.log_macro_results', '--args', '{"macro_name": "elementary_cli.get_elementary_database_and_schema", "macro_args": {}}', '--project-dir', '/Users/david.shi/Library/Caches/pypoetry/virtualenvs/dippr-grznMPux-py3.12/lib/python3.12/site-packages/elementary/monitor/dbt_project', '--target', 'e2_prod']' is 448
2025-10-02 15:22:35 — INFO — Elementary's database and schema: '"production.elementary"'
2025-10-02 15:22:35 — INFO — Running internal dbt run to populate alerts
2025-10-02 15:22:35 — INFO — Running dbt command run -m elementary_cli.alerts.alerts_v2 --project-dir /Users/david.shi/Library/Caches/pypoetry/virtualenvs/dippr-grznMPux-py3.12/lib/python3.12/site-packages/elementary/monitor/dbt_project --target e2_prod --vars {"disable_run_results": false, "disable_tests_results": false, "disable_model_alerts": false, "disable_test_alerts": false, "days_back": 1}
2025-10-02 15:23:03 — INFO — Running dbt command --log-format json run-operation elementary.log_macro_results --args {"macro_name": "elementary_cli.get_pending_alerts", "macro_args": {"days_back": 1, "type": null}} --project-dir /Users/david.shi/Library/Caches/pypoetry/virtualenvs/dippr-grznMPux-py3.12/lib/python3.12/site-packages/elementary/monitor/dbt_project --target e2_prod
2025-10-02 15:23:05 — DEBUG — Result bytes size for command '['--log-format', 'json', 'run-operation', 'elementary.log_macro_results', '--args', '{"macro_name": "elementary_cli.get_pending_alerts", "macro_args": {"days_back": 1, "type": null}}', '--project-dir', '/Users/david.shi/Library/Caches/pypoetry/virtualenvs/dippr-grznMPux-py3.12/lib/python3.12/site-packages/elementary/monitor/dbt_project', '--target', 'e2_prod']' is 48546
2025-10-02 15:23:05 — INFO — Running dbt command --log-format json run-operation elementary.log_macro_results --args {"macro_name": "elementary_cli.get_last_alert_sent_times", "macro_args": {"days_back": 1, "type": null}} --project-dir /Users/david.shi/Library/Caches/pypoetry/virtualenvs/dippr-grznMPux-py3.12/lib/python3.12/site-packages/elementary/monitor/dbt_project --target e2_prod
2025-10-02 15:23:06 — DEBUG — Result bytes size for command '['--log-format', 'json', 'run-operation', 'elementary.log_macro_results', '--args', '{"macro_name": "elementary_cli.get_last_alert_sent_times", "macro_args": {"days_back": 1, "type": null}}', '--project-dir', '/Users/david.shi/Library/Caches/pypoetry/virtualenvs/dippr-grznMPux-py3.12/lib/python3.12/site-packages/elementary/monitor/dbt_project', '--target', 'e2_prod']' is 2106
2025-10-02 15:23:06 — INFO — Update skipped alerts
2025-10-02 15:23:06 — ERROR — Could not send the alert - <class 'elementary.monitor.alerts.test_alert.TestAlertModel'>.
2025-10-02 15:23:06 — ERROR — Could not send the alert - c0fc6f77-0e57-4785-a330-fe0245726124.test.prodigy_dbt.unique_growthbook_student_activation_user_id.b89ed40fa6. Full alert: {"id": "c0fc6f77-0e57-4785-a330-fe0245726124.test.prodigy_dbt.unique_growthbook_student_activation_user_id.b89ed40fa6", "alert_class_id": "test.prodigy_dbt.unique_growthbook_student_activation_user_id.b89ed40fa6.user_id.generic", "model_unique_id": "model.prodigy_dbt.growthbook_student_activation", "detected_at": "2025-10-02 05:14:20 EDT", "database_name": "production", "schema_name": "gold", "owners": ["Non-Game Data"], "tags": ["daily", "dbt"], "subscribers": [], "status": "fail", "suppression_interval": 16, "test_unique_id": "test.prodigy_dbt.unique_growthbook_student_activation_user_id.b89ed40fa6", "elementary_unique_id": "test.prodigy_dbt.unique_growthbook_student_activation_user_id.b89ed40fa6.user_id.generic", "test_name": "unique_growthbook_student_activation_user_id", "test_display_name": "Unique Growthbook Student Activation User Id", "severity": "ERROR", "table_name": "growthbook_student_activation", "table_full_name": "production.gold.growthbook_student_activation", "test_type": "dbt_test", "test_sub_type": "generic", "test_sub_type_display_name": "Generic", "test_results_description": "Got 1 result, configured to fail if != 0", "test_results_query": "select\n    user_id as unique_field,\n    count(*) as n_records\n\nfrom production.gold.growthbook_student_activation\nwhere user_id is not null\ngroup by user_id\nhaving count(*) > 1", "test_short_name": "unique", "test_description": "This test validates that there are no duplicate values present in a field.", "other": {}, "test_params": {"column_name": "user_id", "model": "{{ get_where_subquery(ref('growthbook_student_activation')) }}"}, "test_rows_sample": [], "column_name": "user_id", "env": "prod"}
2025-10-02 15:23:06 — INFO — Update sent alerts
k
A message from kapa.ai
Thank you for sharing the detailed log and confirming your setup. Based on your log and the knowledge sources, here are the most relevant points and next steps: ### 1. Lack of Specific Error Details Your log shows the generic error:
Copy code
ERROR — Could not send the alert - <class 'elementary.monitor.alerts.test_alert.TestAlertModel'>. ERROR — Could not send the alert - c0fc6f77-0e57-4785-a330-fe0245726124.test.prodigy_dbt.unique_growthbook_student_activation_user_id.b89ed40fa6. Full alert: {...}
but does not include a Slack API error message (such as
channel_not_found
,
invalid_auth
, or
not_allowed_token_type
). In other cases, the log or CLI output usually contains a more specific Slack error, which is crucial for debugging (e.g., permissions, token type, or channel issues) [Slack forum user question](https://slack.com/archives/C02CTC89LAX/p1709624407880629). ### 2. Known Issues and Troubleshooting Steps - Token Type: Ensure you are using a Bot User OAuth Token, not an App-Level token. Using the wrong token type is a common cause of silent failures or generic errors [Slack forum user question](https://slack.com/archives/C02CTC89LAX/p1709624407880629). - Channel Access: Double-check that the Elementary app is invited to the channel, especially if it’s private [Slack forum user question](https://slack.com/archives/C02CTC89LAX/p1691482831550239). - Elementary Version: You are on 0.19.4, which is the latest for the dbt package, so you are up to date. - No Additional Log Details: In some cases, the Elementary log does not provide enough detail. This has been noted by other users, and support has sometimes requested more verbose logs or additional debug output [Slack forum user question](https://slack.com/archives/C02CTC89LAX/p1707297545949929). ### 3. Other Potential Causes - Custom Alert Configurations: If you have custom alert YAML or meta configurations, a misconfiguration can cause alert extraction or sending to fail, sometimes without a clear error [Slack forum user question](https://slack.com/archives/C02CTC89LAX/p1678867969051109). - Slack SDK Version: There was a known issue where newer versions of the slack-sdk package broke compatibility with Elementary. If you recently updated dependencies, ensure slack-sdk is pinned to a compatible version (e.g., 3.17.0) [Slack forum user question](https://slack.com/archives/C02CTC89LAX/p1662029029665899). ### 4. What to Try Next - Check for Slack API Rate Limits or Errors: If you are sending many alerts, you might hit Slack rate limits, which can cause silent failures or generic errors [Slack forum user question](https://slack.com/archives/C02CTC89LAX/p1662029029665899). - Verbose Logging: If possible, increase the verbosity of the logs or run with debug flags to try to capture more detailed error output. - Test with a Simple Alert: Try sending a test alert to a public channel with minimal configuration to isolate whether the issue is with the alert content or the integration itself. ### 5. If the Issue Persists If you have already checked all the above and the log still does not provide a more specific error, it may be necessary to reach out to Elementary support with your log and configuration details, as sometimes the root cause is environment-specific or requires deeper investigation [Slack forum user question](https://slack.com/archives/C02CTC89LAX/p1707297545949929). --- Summary: You have already covered the main troubleshooting steps. The lack of a specific Slack API error in your logs makes it difficult to pinpoint the issue further based on the available knowledge sources. If you can, try to capture more verbose logs or test with a different (public) channel and a known-good token. If the problem persists, contacting Elementary support with your logs and configuration is recommended, as this matches the escalation path seen in similar cases. If you have more details or can capture a more specific error message, please share it for further assistance.
f
@David Shi, I have a similar issue where the logging is exactly the same when sending something to teams. This only happens after upgrading to 0.20.0. were you able to resolve it?