David Shi
10/02/2025, 7:19 PMERROR: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"}kapa.ai
10/02/2025, 7:19 PMkapa.ai
10/02/2025, 7:19 PMxoxb-) 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!David Shi
10/02/2025, 7:25 PM2025-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 alertskapa.ai
10/02/2025, 7:25 PMkapa.ai
10/02/2025, 7:27 PMERROR — 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.Frank Tubbing [Beequip]
10/24/2025, 9:49 PM