great_expectations
great_expectations copied to clipboard
Docs cannot be rendered when validation contain an exception KeyError: 'observed_value'
Describe the bug When the validation result does not contain the 'observed_value' due to an exception thrown the rendering of the docs will skip that validation run.
To Reproduce Steps to reproduce the behavior:
- Run the validation and force the exception (e.g. connectivity or driver issue)
- For instance you must obtain such validation in your validation store
{ "meta": { "great_expectations_version": "0.15.26", "expectation_suite_name": "table", "run_id": { "run_name": "20221019-140145-Airflow", "run_time": "2022-10-19T14:01:45.742626+00:00" }, "batch_spec": { "data_asset_name": "my.table", "create_temp_table": false, "query": "SQLQuery", "temp_table_schema_name": null }, "batch_markers": { "ge_load_time": "20221019T140145.753365Z" }, "active_batch_definition": { "datasource_name": "my_datasource", "data_connector_name": "default_runtime_data_connector_name", "data_asset_name": "my.table", "batch_identifiers": { "default_identifier_name": "default_identifier" } }, "validation_time": "20221019T140145.757445Z", "checkpoint_name": "table", "validation_id": null, "checkpoint_id": null }, "success": false, "statistics": { "evaluated_expectations": 50, "successful_expectations": 0, "unsuccessful_expectations": 50, "success_percent": 0.0 }, "results": [ { "result": {}, "success": false, "meta": {}, "exception_info": { "exception_traceback": "Traceback (most recent call last):\n File \"/home/airflow/.local/lib/python3.9/site-packages/great_expectations/execution_engine/execution_engine.py\", line 393, in resolve_metrics\n resolved_metrics[metric_to_resolve.id] = metric_fn(\n File \"/home/airflow/.local/lib/python3.9/site-packages/great_expectations/expectations/metrics/metric_provider.py\", line 34, in inner_func\n return metric_fn(*args, **kwargs)\n File \"/home/airflow/.local/lib/python3.9/site-packages/great_expectations/expectations/metrics/table_metrics/table_columns.py\", line 47, in _sqlalchemy\n return [col[\"name\"] for col in column_metadata]\nTypeError: 'NoneType' object is not iterable\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/home/airflow/.local/lib/python3.9/site-packages/great_expectations/validator/validator.py\", line 1287, in resolve_validation_graph\n self._resolve_metrics(\n File \"/home/airflow/.local/lib/python3.9/site-packages/great_expectations/validator/validator.py\", line 2210, in _resolve_metrics\n return execution_engine.resolve_metrics(\n File \"/home/airflow/.local/lib/python3.9/site-packages/great_expectations/execution_engine/execution_engine.py\", line 397, in resolve_metrics\n raise ge_exceptions.MetricResolutionError(\ngreat_expectations.exceptions.exceptions.MetricResolutionError: 'NoneType' object is not iterable\n", "exception_message": "'NoneType' object is not iterable", "raised_exception": true }, "expectation_config": { "meta": {}, "kwargs": { "column_list": [ "skin", "project_alias", "country", "date", "eventDate", "profile_id", "transaction_id", "source_medium", "channel_grouping", "campaign", "device_category", "transactions", "transaction_revenue", "refund_amount" ], "batch_id": "d9f01736c4e40c59c7f245b016de62a6" }, "expectation_type": "expect_table_columns_to_match_ordered_list" } } ], "evaluation_parameters": {} }
- Run
great_expectations docs build
Expected behavior Validations with exceptions are rendered and can be viewed.
Actual behavior:
Command throws an error and do not include this validation into the docs:
An unexpected Exception occurred during data docs rendering. Because of this error, certain parts of data docs will not be rendered properly and/or may not appear altogether. Please use the trace, included in this message, to diagnose and repair the underlying issue. Detailed information follows: KeyError: "'observed_value'". Traceback: "Traceback (most recent call last): File "C:\Users\Sergii Muzychenko\PycharmProjects\great-expectations-demo\venv\lib\site-packages\great_expectations\render\renderer\site_builder.py", line 464, in build rendered_content = self.renderer_class.render(resource) File "C:\Users\Sergii Muzychenko\PycharmProjects\great-expectations-demo\venv\lib\site-packages\great_expectations\render\renderer\page_renderer.py", line 124, in render sections = self._collect_rendered_document_content_sections( File "C:\Users\Sergii Muzychenko\PycharmProjects\great-expectations-demo\venv\lib\site-packages\great_expectations\render\renderer\page_renderer.py", line 247, in _collect_rendered_docu ment_content_sections ordered_columns = Renderer._get_column_list_from_evrs(validation_results) File "C:\Users\Sergii Muzychenko\PycharmProjects\great-expectations-demo\venv\lib\site-packages\great_expectations\render\renderer\renderer.py", line 87, in _get_column_list_from_evrs ordered_columns = expect_table_columns_to_match_ordered_list_evr.result[ KeyError: 'observed_value' ".
Environment (please complete the following information):
- Operating System: [Windows 10]
- Great Expectations Version: [e.g. 0.15.26]
Additional context Add any other context about the problem here.
Reproduced also on Great Expectations Version: [e.g. 0.15.27] - the latest at the moment
An unexpected Exception occurred during data docs rendering. Because of this error, certain parts of data docs will not be rendered properly and/or may not appear altogether. Please use the trace, included in this message, to diagnose and repair the underlying issue. Detailed information follows:
KeyError: "'observed_value'". Traceback: "Traceback (most recent call last):
File "/home/lestrang/.local/lib/python3.10/site-packages/great_expectations/render/renderer/site_builder.py", line 464, in build
rendered_content = self.renderer_class.render(resource)
File "/home/lestrang/.local/lib/python3.10/site-packages/great_expectations/render/renderer/page_renderer.py", line 125, in render
sections = self._collect_rendered_document_content_sections(
File "/home/lestrang/.local/lib/python3.10/site-packages/great_expectations/render/renderer/page_renderer.py", line 248, in _collect_rendered_document_content_sections
ordered_columns = Renderer._get_column_list_from_evrs(validation_results)
File "/home/lestrang/.local/lib/python3.10/site-packages/great_expectations/render/renderer/renderer.py", line 87, in _get_column_list_from_evrs
ordered_columns = expect_table_columns_to_match_ordered_list_evr.result[
KeyError: 'observed_value'
".
wsl jupyter notebook
Only happens while running "runtime_parameters": {"batch_data", df } if I use path it works just fine
Hi @serg-music and @Liftingthedata - apologies for the delay here. Is this still an issue?