# Execute checkpoint behind proxy

**URL:** <https://discourse.greatexpectations.io/t/execute-checkpoint-behind-proxy/1303>\
**Category:** GX Core Support\
**Created:** [July 28, 2023, 8:49pm UTC](https://discourse.greatexpectations.io/t/execute-checkpoint-behind-proxy/1303 "2023-07-28T20:49:49Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![DJuanes](https://avatars.discourse-cdn.com/v4/letter/d/7c8e57/32.png) [@DJuanes](https://discourse.greatexpectations.io/u/DJuanes)\
**Post date:** [July 28, 2023, 8:49pm UTC](https://discourse.greatexpectations.io/t/execute-checkpoint-behind-proxy/1303/1 "2023-07-28T20:49:49Z")

</div>

Hello  
I wanted to know if there is a way to run Great Expectations behind a corporate proxy.  
Locally the checkpoint works fine, but when deploying it I receive the following error:  
requests.exceptions.ProxyError: HTTPSConnectionPool(host=‘[stats.greatexpectations.io](http://stats.greatexpectations.io)’, port=443): Max retries exceeded with url: /great\_expectations/v1/usage\_statistics (Caused by ProxyError(‘Cannot connect to proxy.’, OSError( ‘Tunnel connection failed: 407 AuthorizedOnlyYPF’)))

---

<div class="post-metadata">

**Author:** ![DJuanes](https://avatars.discourse-cdn.com/v4/letter/d/7c8e57/32.png) [@DJuanes](https://discourse.greatexpectations.io/u/DJuanes)\
**Post date:** [July 31, 2023, 6:41pm UTC](https://discourse.greatexpectations.io/t/execute-checkpoint-behind-proxy/1303/2 "2023-07-31T18:41:25Z")

</div>

Hello,  
Can someone help me with this problem?

---

<div class="post-metadata">

**Author:** ![HaebichanGX](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.greatexpectations.io/haebichangx/32/211_2.png) [@HaebichanGX](https://discourse.greatexpectations.io/u/HaebichanGX)\
**Post date:** [August 2, 2023, 4:00pm UTC](https://discourse.greatexpectations.io/t/execute-checkpoint-behind-proxy/1303/3 "2023-08-02T16:00:05Z")

</div>

Hi @DJuanes it looks like you have to turn off `anonymous_usage_statistics` --Tthat should be a key in your `great_expectations.yml` that needs to be flipped from `true` to `false`. Please let me know if that works for you!

---

<div class="post-metadata">

**Author:** ![DJuanes](https://avatars.discourse-cdn.com/v4/letter/d/7c8e57/32.png) [@DJuanes](https://discourse.greatexpectations.io/u/DJuanes)\
**Post date:** [August 2, 2023, 8:26pm UTC](https://discourse.greatexpectations.io/t/execute-checkpoint-behind-proxy/1303/4 "2023-08-02T20:26:04Z")

</div>

Thanks for the reply @HaebichanGX  
I set that option to false, but now it shows me another error.  
Running it locally works fine, but not in production environment (Azure Web App)  
Traceback (most recent call last):  
File “/usr/local/lib/python3.9/site-packages/opentelemetry/trace/ **init**.py”, line 573, in use\_span  
yield span  
File “/usr/local/lib/python3.9/site-packages/opentelemetry/sdk/trace/ **init**.py”, line 1045, in start\_as\_current\_span  
yield span\_context  
File “/parent-child/app/api.py”, line 179, in \_etl  
df\_pressures, df\_estados = main.elt\_data()  
File “/parent-child/src/main.py”, line 53, in elt\_data  
valid\_data = data.validate\_input()  
File “/parent-child/src/data.py”, line 29, in validate\_input  
result: CheckpointResult = data\_context.run\_checkpoint(  
File “/usr/local/lib/python3.9/site-packages/great\_expectations/core/usage\_statistics/usage\_statistics.py”, line 260, in usage\_statistics\_wrapped\_method  
result = func(\*args, \*\*kwargs)  
File “/usr/local/lib/python3.9/site-packages/great\_expectations/data\_context/data\_context/abstract\_data\_context.py”, line 2447, in run\_checkpoint  
return self.\_run\_checkpoint(  
File “/usr/local/lib/python3.9/site-packages/great\_expectations/data\_context/data\_context/abstract\_data\_context.py”, line 2491, in \_run\_checkpoint  
result: CheckpointResult = checkpoint.run\_with\_runtime\_args(  
File “/usr/local/lib/python3.9/site-packages/great\_expectations/checkpoint/checkpoint.py”, line 911, in run\_with\_runtime\_args  
return self.run(\*\*checkpoint\_run\_arguments)  
File “/usr/local/lib/python3.9/site-packages/great\_expectations/core/usage\_statistics/usage\_statistics.py”, line 260, in usage\_statistics\_wrapped\_method  
result = func(\*args, \*\*kwargs)  
File “/usr/local/lib/python3.9/site-packages/great\_expectations/checkpoint/checkpoint.py”, line 304, in run  
self.\_run\_validation(  
File “/usr/local/lib/python3.9/site-packages/great\_expectations/checkpoint/checkpoint.py”, line 479, in \_run\_validation  
validator: Validator = self.\_validator or self.data\_context.get\_validator(  
File “/usr/local/lib/python3.9/site-packages/great\_expectations/data\_context/data\_context/abstract\_data\_context.py”, line 2741, in get\_validator  
return self.get\_validator\_using\_batch\_list(  
File “/usr/local/lib/python3.9/site-packages/great\_expectations/data\_context/data\_context/abstract\_data\_context.py”, line 2767, in get\_validator\_using\_batch\_list  
raise gx\_exceptions.InvalidBatchRequestError(  
great\_expectations.exceptions.exceptions.InvalidBatchRequestError: Validator could not be created because BatchRequest returned an empty batch\_list.  
Please check your parameters and try again.

---

<div class="post-metadata">

**Author:** ![HaebichanGX](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.greatexpectations.io/haebichangx/32/211_2.png) [@HaebichanGX](https://discourse.greatexpectations.io/u/HaebichanGX)\
**Post date:** [August 3, 2023, 2:29pm UTC](https://discourse.greatexpectations.io/t/execute-checkpoint-behind-proxy/1303/6 "2023-08-03T14:29:51Z")

</div>

@DJuanes It’s hard to diagnose without seeing the code. Can you share yours?

---

<div class="post-metadata">

**Author:** ![DJuanes](https://avatars.discourse-cdn.com/v4/letter/d/7c8e57/32.png) [@DJuanes](https://discourse.greatexpectations.io/u/DJuanes)\
**Post date:** [August 3, 2023, 2:52pm UTC](https://discourse.greatexpectations.io/t/execute-checkpoint-behind-proxy/1303/7 "2023-08-03T14:52:49Z")

</div>

Ok. This is the validation function:

def validate\_input() → bool:  
“”"Valida los datos de entrada ejecutando la suite de GE

```
Returns:
    bool: Si los datos son validos o no
"""

data_context: DataContext = DataContext(context_root_dir="./tests/great_expectations")

result: CheckpointResult = data_context.run_checkpoint(
    checkpoint_name="novedades_gidi",
    batch_request=None,
    run_name=None,
)

return result.success

```

---

<div class="post-metadata">

**Author:** ![DJuanes](https://avatars.discourse-cdn.com/v4/letter/d/7c8e57/32.png) [@DJuanes](https://discourse.greatexpectations.io/u/DJuanes)\
**Post date:** [August 3, 2023, 2:55pm UTC](https://discourse.greatexpectations.io/t/execute-checkpoint-behind-proxy/1303/8 "2023-08-03T14:55:55Z")

</div>

And great\_expectations.yml:

config\_version: 3.0

datasources:  
local\_data:  
execution\_engine:  
class\_name: PandasExecutionEngine  
module\_name: great\_expectations.execution\_engine  
class\_name: Datasource  
module\_name: great\_expectations.datasource  
data\_connectors:  
default\_inferred\_data\_connector\_name:  
base\_directory: …..\data\input  
class\_name: InferredAssetFilesystemDataConnector  
module\_name: great\_expectations.datasource.data\_connector  
default\_regex:  
group\_names:  
- data\_asset\_name  
pattern: (.\*)  
default\_runtime\_data\_connector\_name:  
assets:  
my\_runtime\_asset\_name:  
batch\_identifiers:  
- runtime\_batch\_identifier\_name  
class\_name: Asset  
module\_name: great\_expectations.datasource.data\_connector.asset  
class\_name: RuntimeDataConnector  
module\_name: great\_expectations.datasource.data\_connector

config\_variables\_file\_path: config\_variables.yml

plugins\_directory: plugins/

stores:  
expectations\_store:  
class\_name: ExpectationsStore  
store\_backend:  
class\_name: TupleFilesystemStoreBackend  
base\_directory: expectations/

validations\_store:  
class\_name: ValidationsStore  
store\_backend:  
class\_name: TupleFilesystemStoreBackend  
base\_directory: uncommitted/validations/

evaluation\_parameter\_store:  
class\_name: EvaluationParameterStore

checkpoint\_store:  
class\_name: CheckpointStore  
store\_backend:  
class\_name: TupleFilesystemStoreBackend  
suppress\_store\_backend\_id: true  
base\_directory: checkpoints/

profiler\_store:  
class\_name: ProfilerStore  
store\_backend:  
class\_name: TupleFilesystemStoreBackend  
suppress\_store\_backend\_id: true  
base\_directory: profilers/

expectations\_store\_name: expectations\_store  
validations\_store\_name: validations\_store  
evaluation\_parameter\_store\_name: evaluation\_parameter\_store  
checkpoint\_store\_name: checkpoint\_store

data\_docs\_sites:  
local\_site:  
class\_name: SiteBuilder  
# set to false to hide how-to buttons in Data Docs  
show\_how\_to\_buttons: true  
store\_backend:  
class\_name: TupleFilesystemStoreBackend  
base\_directory: uncommitted/data\_docs/local\_site/  
site\_index\_builder:  
class\_name: DefaultSiteIndexBuilder  
blob\_storage:  
class\_name: SiteBuilder  
store\_backend:  
class\_name: TupleAzureBlobStoreBackend  
container: $web  
connection\_string: ${GE\_STORAGE\_CONNECTION\_STRING}  
site\_index\_builder:  
class\_name: DefaultSiteIndexBuilder

anonymous\_usage\_statistics:  
enabled: false  
data\_context\_id: 7ad54930-713b-41c9-9c2c-36ef198c8960  
notebooks:

---

<div class="post-metadata">

**Author:** ![DJuanes](https://avatars.discourse-cdn.com/v4/letter/d/7c8e57/32.png) [@DJuanes](https://discourse.greatexpectations.io/u/DJuanes)\
**Post date:** [August 7, 2023, 12:48pm UTC](https://discourse.greatexpectations.io/t/execute-checkpoint-behind-proxy/1303/9 "2023-08-07T12:48:40Z")

</div>

Is this a proxy problem or is it something else?

---

<div class="post-metadata">

**Author:** ![DJuanes](https://avatars.discourse-cdn.com/v4/letter/d/7c8e57/32.png) [@DJuanes](https://discourse.greatexpectations.io/u/DJuanes)\
**Post date:** [August 9, 2023, 12:43pm UTC](https://discourse.greatexpectations.io/t/execute-checkpoint-behind-proxy/1303/10 "2023-08-09T12:43:41Z")

</div>

Is this a proxy problem or is it something else?

---

<div class="post-metadata">

**Author:** ![DJuanes](https://avatars.discourse-cdn.com/v4/letter/d/7c8e57/32.png) [@DJuanes](https://discourse.greatexpectations.io/u/DJuanes)\
**Post date:** [August 11, 2023, 12:13pm UTC](https://discourse.greatexpectations.io/t/execute-checkpoint-behind-proxy/1303/11 "2023-08-11T12:13:06Z")

</div>

This tool works in production environments or only for development?  
It’s really frustrating.  
Great Deception!!!

---

<div class="post-metadata">

**Author:** ![HaebichanGX](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.greatexpectations.io/haebichangx/32/211_2.png) [@HaebichanGX](https://discourse.greatexpectations.io/u/HaebichanGX)\
**Post date:** [August 15, 2023, 2:14pm UTC](https://discourse.greatexpectations.io/t/execute-checkpoint-behind-proxy/1303/12 "2023-08-15T14:14:42Z")

</div>

Hi there @DJuanes, no GX works for both production and development but it really depends on how you set up GX. It does look like you have a previous implementation of GX, based on looking at your config. But to be sure can you please share your entire code on how you implemented GX end to end?

For more context, we are currently using Fluent Data Source (FDS) which no longer utilizes Data Connectors. Please use this flowchart to visualize the end to end implementation of the new system: [GX Simple Use Case Flow Chart | Lucidspark](https://lucid.app/lucidspark/4373d267-f0bf-4085-8a44-b077277c0748/edit?invitationId=inv_a832619d-4907-4518-b495-2d89c840454f&page=0_0#)
