403 Error for Experiment finish

### Observed behaviour
When finishing an Experiment the EPF wants to call the `api/experiments/:id/finish` endpoint and receives an `HTTP 403` error.

This can be seen in [this end2end test](https://gitlab.com/mlreef/mlreef/-/jobs/667229461), which created [this project](http://SMOKE-TEST-iaa:password@ec2-18-194-183-93.eu-central-1.compute.amazonaws.com:10080/SMOKE-TEST-iaa/test-project) and [this pipeline](http://ec2-18-194-183-93.eu-central-1.compute.amazonaws.com:10080/SMOKE-TEST-iaa/test-project/-/jobs/16)


```
Running after script...
 $ epf-finish
 EPF_PIPELINE_SECRET is d8288fba7a8a2f222ed0c9795c306707
 EPF_PIPELINE_URL is ec2-18-194-183-93.eu-central-1.compute.amazonaws.com/api/v1/epf/experiments/a13154a4-b981-4509-b6ea-b5fe94bd30f6
 Finalize EPF execution and send finish information to backend
 ec2-18-194-183-93.eu-central-1.compute.amazonaws.com/api/v1/epf/experiments/a13154a4-b981-4509-b6ea-b5fe94bd30f6/finish
   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                  Dload  Upload   Total   Spent    Left  Speed
   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 172.31.15.168...
 * TCP_NODELAY set
 * Connected to ec2-18-194-183-93.eu-central-1.compute.amazonaws.com (172.31.15.168) port 80 (#0)
 > PUT /api/v1/epf/experiments/a13154a4-b981-4509-b6ea-b5fe94bd30f6/finish HTTP/1.1
 > Host: ec2-18-194-183-93.eu-central-1.compute.amazonaws.com
 > User-Agent: curl/7.58.0
 > Accept: */*
 > EPF-BOT-TOKEN: d8288fba7a8a2f222ed0c9795c306707
 > Content-Type: application/json
 > 
 < HTTP/1.1 403 
 < Server: nginx/1.19.1
 < Date: Sun, 02 Aug 2020 12:14:53 GMT
 < Content-Length: 0
 < Connection: keep-alive
 < Access-Control-Allow-Credentials: true
 < Access-Control-Allow-Methods: *
 < Access-Control-Max-Age: 3600
 < Access-Control-Allow-Headers: *
 < 
   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
 * Connection #0 to host ec2-18-194-183-93.eu-central-1.compute.amazonaws.com left intact
 HTTP/1.1 403 
 Server: nginx/1.19.1
 Date: Sun, 02 Aug 2020 12:14:53 GMT
 Content-Length: 0
 Connection: keep-alive
 Access-Control-Allow-Credentials: true
 Access-Control-Allow-Methods: *
 Access-Control-Max-Age: 3600
 Access-Control-All
```


### Expected behaviour
Well ... no error ;-)


### Steps to reproduce
* Create and push new branch and for the pipeline to finish
* Go to the end2end job and look at the log:
  * Look for the text "Project URL:" usually around 1201 and follow the link
* Look at the project pipelines


### Solution
> Add technical implementation details and the results of the ticket's discussion here.

* [ ]  Add at least one test



Additional Notes
=====================
complete job log:

```
 Running with gitlab-runner 13.2.2 (a998cacd)
   on Multi runner dispatcher on ec2-18-194-183-93.eu-central-1.compute.amazonaws.com -FyArkXY
Preparing the "docker+machine" executor
06:02
 Using Docker executor with image registry.gitlab.com/mlreef/mlreef/epf:feature-555-ensure-local-testing ...
 Pulling docker image gitlab/gitlab-runner-helper:x86_64-a998cacd ...
 Using docker image sha256:af98a1efed2728f2ded0b1b4141a75d1fbc4a2598b8ff655044f2019574374cb for gitlab/gitlab-runner-helper:x86_64-a998cacd ...
 Pulling docker image registry.gitlab.com/mlreef/mlreef/epf:feature-555-ensure-local-testing ...
 Using docker image sha256:2438f99238ed607f28f14de0c5cdc4a9c68dac46bf497aa98d4a928eaae4e0b6 for registry.gitlab.com/mlreef/mlreef/epf:feature-555-ensure-local-testing ...
Preparing environment
01:50
 Running on runner--fyarkxy-project-30-concurrent-0 via runner-fyarkxy-mlreef-aiops-1596369941-2fdef18a...
Getting source from Git repository
00:01
 Fetching changes with git depth set to 50...
 Initialized empty Git repository in /builds/SMOKE-TEST-iaa/test-project/.git/
 Created fresh repository.
 Checking out 186f39f7 as experiment/happy-jellyfish_2962020...
 Skipping Git submodules setup
Executing "step_script" stage of the job script
01:18
 $ cat .mlreef.yml
 ################################################################################
 # This is the MLReef configuration file.                                       #
 # It contains the current configuration of your model-experiment (training)    #
 # as well as the temporary configurations executed data pipelines              #
 ################################################################################
 # This is the docker image your model training will be executed in
 image: registry.gitlab.com/mlreef/mlreef/epf:feature-555-ensure-local-testing
 variables:
   # Change pip's cache directory to be inside the project directory since we can only cache local items.
   PIP_CACHE_DIR:       "$CI_PROJECT_DIR/.cache/pip"
   EPF_GITLAB_HOST:     "ec2-18-194-183-93.eu-central-1.compute.amazonaws.com"
   # The EPF Pipeline URL is the complete URL to the EPF endpoint for this particular pipeline
   # mlreef.com/api/v1/epf/experiments/:experiment_id
   EPF_PIPELINE_URL:    "ec2-18-194-183-93.eu-central-1.compute.amazonaws.com/api/v1/epf/experiments/a13154a4-b981-4509-b6ea-b5fe94bd30f6"
   EPF_PIPELINE_SECRET: "d8288fba7a8a2f222ed0c9795c306707"
   INPUT_FILE_LIST:     "PATH:data/"
   TARGET_BRANCH:       "experiment/happy-jellyfish_2962020"
 # The before_script handles everything git related and sets up the automatic committing
 before_script:
   # Debug output mlreef.yml
   - cat .mlreef.yml
   - echo "####################"
   #- it just aint working!
   - git remote set-url origin http://${GIT_PUSH_USER}:password@"$EPF_GITLAB_HOST":10080/SMOKE-TEST-iaa/test-project.git
   - git config --global user.email "SMOKE-TEST-iaa@example.com"
   - git config --global user.name "SMOKE-TEST-iaa"
   # TODO this can maybe be deleted
   #- git checkout master
   # TODO this can maybe be deleted
   #- export GITLAB_API_TOKEN="${GIT_PUSH_TOKEN}"
   - echo "Target branch is $TARGET_BRANCH"
   - background-push &
 after_script:
   - epf-finish
 data-pipeline:
   script:
     - git checkout -b $TARGET_BRANCH
     - echo ${CI_JOB_ID} >> data_pipeline.info
     - python /epf/model/resnet50.py --input-path data --output-path . --epochs 2 --height 36 --width 36
     - git add .
     - git status
     - git commit -m "Add pipeline results [skip ci]"
     - git push --set-upstream origin $TARGET_BRANCH
     - git push$ echo "####################"
 ####################
 $ git remote set-url origin http://${GIT_PUSH_USER}:password@"$EPF_GITLAB_HOST":10080/SMOKE-TEST-iaa/test-project.git
 $ git config --global user.email "SMOKE-TEST-iaa@example.com"
 $ git config --global user.name "SMOKE-TEST-iaa"
 $ echo "Target branch is $TARGET_BRANCH"
 Target branch is experiment/happy-jellyfish_2962020
 $ background-push &
 $ git checkout -b $TARGET_BRANCH
 EPF_PIPELINE_SECRET is d8288fba7a8a2f222ed0c9795c306707
 EPF_PIPELINE_URL is ec2-18-194-183-93.eu-central-1.compute.amazonaws.com/api/v1/epf/experiments/a13154a4-b981-4509-b6ea-b5fe94bd30f6
 ------------------------------------------------------------
 Background Commit Iteration 0
 experiment.json does not exist yet, waiting for experiment to start..
 Switched to a new branch 'experiment/happy-jellyfish_2962020'
 $ echo ${CI_JOB_ID} >> data_pipeline.info
 $ python /epf/model/resnet50.py --input-path data --output-path . --epochs 2 --height 36 --width 36
 2020-08-02 12:13:38.142932: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libnvinfer.so.6
 2020-08-02 12:13:38.144635: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libnvinfer_plugin.so.6
 2020-08-02 12:13:39.229355: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcuda.so.1
 2020-08-02 12:13:39.253162: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
 2020-08-02 12:13:39.254006: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1555] Found device 0 with properties: 
 pciBusID: 0000:00:1e.0 name: Tesla K80 computeCapability: 3.7
 coreClock: 0.8235GHz coreCount: 13 deviceMemorySize: 11.17GiB deviceMemoryBandwidth: 223.96GiB/s
 2020-08-02 12:13:39.254059: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.1
 2020-08-02 12:13:39.254123: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10
 2020-08-02 12:13:39.256069: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcufft.so.10
 2020-08-02 12:13:39.256441: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcurand.so.10
 2020-08-02 12:13:39.258616: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusolver.so.10
 2020-08-02 12:13:39.259850: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusparse.so.10
 2020-08-02 12:13:39.259906: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
 2020-08-02 12:13:39.260042: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
 2020-08-02 12:13:39.260927: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
 2020-08-02 12:13:39.261704: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1697] Adding visible gpu devices: 0
 2020-08-02 12:13:39.262074: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
 2020-08-02 12:13:39.284876: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 2300090000 Hz
 2020-08-02 12:13:39.285249: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x58f9e90 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
 2020-08-02 12:13:39.285279: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version
 2020-08-02 12:13:39.900102: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
 2020-08-02 12:13:39.901013: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x596fd70 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:
 2020-08-02 12:13:39.901042: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Tesla K80, Compute Capability 3.7
 2020-08-02 12:13:39.901295: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
 2020-08-02 12:13:39.902054: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1555] Found device 0 with properties: 
 pciBusID: 0000:00:1e.0 name: Tesla K80 computeCapability: 3.7
 coreClock: 0.8235GHz coreCount: 13 deviceMemorySize: 11.17GiB deviceMemoryBandwidth: 223.96GiB/s
 2020-08-02 12:13:39.902117: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.1
 2020-08-02 12:13:39.902151: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10
 2020-08-02 12:13:39.902179: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcufft.so.10
 2020-08-02 12:13:39.902199: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcurand.so.10
 2020-08-02 12:13:39.902213: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusolver.so.10
 2020-08-02 12:13:39.902234: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusparse.so.10
 2020-08-02 12:13:39.902256: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
 2020-08-02 12:13:39.902353: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
 2020-08-02 12:13:39.903148: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
 2020-08-02 12:13:39.903881: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1697] Adding visible gpu devices: 0
 2020-08-02 12:13:39.903931: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.1
 2020-08-02 12:13:40.141917: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1096] Device interconnect StreamExecutor with strength 1 edge matrix:
 2020-08-02 12:13:40.141965: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1102]      0 
 2020-08-02 12:13:40.141976: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] 0:   N 
 2020-08-02 12:13:40.142224: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
 2020-08-02 12:13:40.143052: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
 2020-08-02 12:13:40.143822: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1241] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 10769 MB memory) -> physical GPU (device: 0, name: Tesla K80, pci bus id: 0000:00:1e.0, compute capability: 3.7)
 ------------------------------------------------------------
 Background Commit Iteration 1
 experiment.json does not exist yet, waiting for experiment to start..
 ------------------------------------------------------------
 Background Commit Iteration 2
 experiment.json does not exist yet, waiting for experiment to start..
 ------------------------------------------------------------
 Background Commit Iteration 3
 iteration: 3
 Background push to URL: ec2-18-194-183-93.eu-central-1.compute.amazonaws.com/api/v1/epf/experiments/a13154a4-b981-4509-b6ea-b5fe94bd30f6/update
   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                  Dload  Upload   Total   Spent    Left  Speed
 100     2    0     0  100     2      0     58 --:--:-- --:--:-- --:--:--    58
 HTTP/1.1 403 
 Server: nginx/1.19.1
 Date: Sun, 02 Aug 2020 12:14:06 GMT
 Content-Length: 0
 Connection: keep-alive
 Access-Control-Allow-Credentials: true
 Access-Control-Allow-Methods: *
 Access-Control-Max-Age: 3600
 Access-Control-Allow-Headers: *
 {}------------------------------------------------------------
 Background Commit Iteration 4
 iteration: 4
 Background push to URL: ec2-18-194-183-93.eu-central-1.compute.amazonaws.com/api/v1/epf/experiments/a13154a4-b981-4509-b6ea-b5fe94bd30f6/update
   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                  Dload  Upload   Total   Spent    Left  Speed
 100     2    0     0  100     2      0    142 --:--:-- --:--:-- --:--:--   142
 HTTP/1.1 403 
 Server: nginx/1.19.1
 Date: Sun, 02 Aug 2020 12:14:21 GMT
 Content-Length: 0
 Connection: keep-alive
 Access-Control-Allow-Credentials: true
 Access-Control-Allow-Methods: *
 Access-Control-Max-Age: 3600
 Access-Control-Allow-Headers: *
 {}2020-08-02 12:14:23.365843: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10
 2020-08-02 12:14:23.581907: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
 Found 150 images belonging to 2 classes.
 Found 50 images belonging to 2 classes.
 {'category_1': 0, 'category_2': 1}
 2
 Epoch 1/2
 1/4 [======>.......................] - ETA: 1:02 - loss: 1.3077 - accuracy: 0.5938Error encountered:  float() argument must be a string or a number, not 'NoneType'
 2/4 [==============>...............] - ETA: 21s - loss: 1.7901 - accuracy: 0.5156 Error encountered:  float() argument must be a string or a number, not 'NoneType'
 3/4 [=====================>........] - ETA: 7s - loss: 1.6938 - accuracy: 0.5521 Error encountered:  float() argument must be a string or a number, not 'NoneType'
 Error encountered:  float() argument must be a string or a number, not 'NoneType'
 4/4 [==============================] - 23s 6s/step - loss: 2.3449 - accuracy: 0.5391 - val_loss: 130.8565 - val_accuracy: 0.5312
 Epoch 2/2
 1/4 [======>.......................] - ETA: 3s - loss: 2.3619 - accuracy: 0.4545Error encountered:  float() argument must be a string or a number, not 'NoneType'
 2/4 [==============>...............] - ETA: 1s - loss: 1.7885 - accuracy: 0.5227Error encountered:  float() argument must be a string or a number, not 'NoneType'
 3/4 [=====================>........] - ETA: 0s - loss: 1.8629 - accuracy: 0.5132Error encountered:  float() argument must be a string or a number, not 'NoneType'
 Error encountered:  float() argument must be a string or a number, not 'NoneType'
 4/4 [==============================] - 2s 576ms/step - loss: 1.7177 - accuracy: 0.5000 - val_loss: 15.0612 - val_accuracy: 0.5556
 Using TensorFlow backend.
 /usr/local/lib/python3.6/dist-packages/keras_applications/resnet50.py:265: UserWarning: The output shape of `ResNet50(include_top=False)` has been changed since Keras 2.2.0.
   warnings.warn('The output shape of `ResNet50(include_top=False)` '
 /usr/local/lib/python3.6/dist-packages/keras/callbacks/callbacks.py:1042: RuntimeWarning: Reduce LR on plateau conditioned on metric `val_acc` which is not available. Available metrics are: val_loss,val_accuracy,loss,accuracy,lr
   (self.monitor, ','.join(list(logs.keys()))), RuntimeWarning
 $ git add .
 ------------------------------------------------------------
 Background Commit Iteration 5
 iteration: 5
 Background push to URL: ec2-18-194-183-93.eu-central-1.compute.amazonaws.com/api/v1/epf/experiments/a13154a4-b981-4509-b6ea-b5fe94bd30f6/update
   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                  Dload  Upload   Total   Spent    Left  Speed
 100   193    0     0  100   193      0  12866 --:--:-- --:--:-- --:--:-- 12866
 HTTP/1.1 403 
 Server: nginx/1.19.1
 Date: Sun, 02 Aug 2020 12:14:36 GMT
 Content-Length: 0
 Connection: keep-alive
 Access-Control-Allow-Credentials: true
 Access-Control-Allow-Methods: *
 Access-Control-Max-Age: 3600
 Access-Control-Allow-Headers: *
 {"0": {"acc": null, "val_acc": null, "loss": 2.3448652923107147, "val_loss": 130.85653686523438}, "1": {"acc": null, "val_acc": null, "loss": 1.7075497375594244, "val_loss": 15.06124496459961}}$ git status
 On branch experiment/happy-jellyfish_2962020
 Changes to be committed:
   (use "git reset HEAD <file>..." to unstage)
 	new file:   data_pipeline.info
 	new file:   experiment.json
 	new file:   model_Resnet50_2020-08-02-12:14:30_epochs_2.h5
 	new file:   training.log
 $ git commit -m "Add pipeline results [skip ci]"
 [experiment/happy-jellyfish_2962020 1ec61d7] Add pipeline results [skip ci]
  4 files changed, 5 insertions(+)
  create mode 100644 data_pipeline.info
  create mode 100644 experiment.json
  create mode 100644 model_Resnet50_2020-08-02-12:14:30_epochs_2.h5
  create mode 100644 training.log
 $ git push --set-upstream origin $TARGET_BRANCH
 ------------------------------------------------------------
 Background Commit Iteration 6
 iteration: 6
 Background push to URL: ec2-18-194-183-93.eu-central-1.compute.amazonaws.com/api/v1/epf/experiments/a13154a4-b981-4509-b6ea-b5fe94bd30f6/update
   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                  Dload  Upload   Total   Spent    Left  Speed
 100   193    0     0  100   193      0  12866 --:--:-- --:--:-- --:--:-- 12866
 HTTP/1.1 403 
 Server: nginx/1.19.1
 Date: Sun, 02 Aug 2020 12:14:52 GMT
 Content-Length: 0
 Connection: keep-alive
 Access-Control-Allow-Credentials: true
 Access-Control-Allow-Methods: *
 Access-Control-Max-Age: 3600
 Access-Control-Allow-Headers: *
 {"0": {"acc": null, "val_acc": null, "loss": 2.3448652923107147, "val_loss": 130.85653686523438}, "1": {"acc": null, "val_acc": null, "loss": 1.7075497375594244, "val_loss": 15.06124496459961}}remote: 
 remote: To create a merge request for experiment/happy-jellyfish_2962020, visit:        
 remote:   http://ec2-18-194-183-93.eu-central-1.compute.amazonaws.com:10080/SMOKE-TEST-iaa/test-project/merge_requests/new?merge_request%5Bsource_branch%5D=experiment%2Fhappy-jellyfish_2962020        
 remote: 
 To http://ec2-18-194-183-93.eu-central-1.compute.amazonaws.com:10080/SMOKE-TEST-iaa/test-project.git
    186f39f..1ec61d7  experiment/happy-jellyfish_2962020 -> experiment/happy-jellyfish_2962020
 Branch 'experiment/happy-jellyfish_2962020' set up to track remote branch 'experiment/happy-jellyfish_2962020' from 'origin'.
 $ git push
 Everything up-to-date
Running after_script
00:01
 Running after script...
 $ epf-finish
 EPF_PIPELINE_SECRET is d8288fba7a8a2f222ed0c9795c306707
 EPF_PIPELINE_URL is ec2-18-194-183-93.eu-central-1.compute.amazonaws.com/api/v1/epf/experiments/a13154a4-b981-4509-b6ea-b5fe94bd30f6
 Finalize EPF execution and send finish information to backend
 ec2-18-194-183-93.eu-central-1.compute.amazonaws.com/api/v1/epf/experiments/a13154a4-b981-4509-b6ea-b5fe94bd30f6/finish
   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                  Dload  Upload   Total   Spent    Left  Speed
   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 172.31.15.168...
 * TCP_NODELAY set
 * Connected to ec2-18-194-183-93.eu-central-1.compute.amazonaws.com (172.31.15.168) port 80 (#0)
 > PUT /api/v1/epf/experiments/a13154a4-b981-4509-b6ea-b5fe94bd30f6/finish HTTP/1.1
 > Host: ec2-18-194-183-93.eu-central-1.compute.amazonaws.com
 > User-Agent: curl/7.58.0
 > Accept: */*
 > EPF-BOT-TOKEN: d8288fba7a8a2f222ed0c9795c306707
 > Content-Type: application/json
 > 
 < HTTP/1.1 403 
 < Server: nginx/1.19.1
 < Date: Sun, 02 Aug 2020 12:14:53 GMT
 < Content-Length: 0
 < Connection: keep-alive
 < Access-Control-Allow-Credentials: true
 < Access-Control-Allow-Methods: *
 < Access-Control-Max-Age: 3600
 < Access-Control-Allow-Headers: *
 < 
   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
 * Connection #0 to host ec2-18-194-183-93.eu-central-1.compute.amazonaws.com left intact
 HTTP/1.1 403 
 Server: nginx/1.19.1
 Date: Sun, 02 Aug 2020 12:14:53 GMT
 Content-Length: 0
 Connection: keep-alive
 Access-Control-Allow-Credentials: true
 Access-Control-Allow-Methods: *
 Access-Control-Max-Age: 3600
 Access-Control-All
```

Story points: 8.0