diff --git a/.env.override b/.env.override
index 77f3f5a544..ae6a318a77 100644
--- a/.env.override
+++ b/.env.override
@@ -2,7 +2,7 @@
# PLACE YOUR .env ENVIRONMENT VARIABLES OVERRIDES IN THIS FILE
# Demo Elastic App version
-IMAGE_VERSION=2.1.4
+IMAGE_VERSION=2.1.5
IMAGE_NAME=ghcr.io/elastic/opentelemetry-demo
# *********************
@@ -16,7 +16,7 @@ KAFKA_SERVICE_DOCKERFILE=./src/kafka/Dockerfile.elastic
# Elastic Collector
# *********************
ELASTIC_AGENT_OTEL=true
-COLLECTOR_CONTRIB_IMAGE="docker.elastic.co/elastic-agent/elastic-agent:9.1.3"
+COLLECTOR_CONTRIB_IMAGE="docker.elastic.co/elastic-agent/elastic-agent:9.2.0"
OTEL_COLLECTOR_CONFIG="./src/otel-collector/otelcol-elastic-config.yaml"
ELASTICSEARCH_ENDPOINT="YOUR_ENDPOINT"
ELASTICSEARCH_API_KEY="YOUR_API_KEY"
diff --git a/demo.sh b/demo.sh
index efacb043e2..24a9a0de11 100755
--- a/demo.sh
+++ b/demo.sh
@@ -3,7 +3,7 @@
set -eu
# Constants
-ELASTIC_STACK_VERSION="9.1.3"
+ELASTIC_STACK_VERSION="9.2.0"
ENV_OVERRIDE_FILE=".env.override"
NAMESPACE="opentelemetry-operator-system"
HELM_REPO_NAME="open-telemetry"
diff --git a/src/cart/src/Directory.Build.props b/src/cart/src/Directory.Build.props
index 046533d15d..9ac6bb9033 100644
--- a/src/cart/src/Directory.Build.props
+++ b/src/cart/src/Directory.Build.props
@@ -1,5 +1,5 @@
-
+
diff --git a/src/cart/src/cart.csproj b/src/cart/src/cart.csproj
index 4092cc1f05..489b84d030 100644
--- a/src/cart/src/cart.csproj
+++ b/src/cart/src/cart.csproj
@@ -18,16 +18,16 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/src/load-generator/requirements.txt b/src/load-generator/requirements.txt
index 8fafa9aaa7..2b4ba69ab9 100644
--- a/src/load-generator/requirements.txt
+++ b/src/load-generator/requirements.txt
@@ -5,7 +5,7 @@ charset-normalizer==3.4.1
click==8.1.8
configargparse==1.7
deprecated==1.2.18
-elastic-opentelemetry==1.8.0
+elastic-opentelemetry==1.9.0
Flask==3.1.2
flask-basicauth==0.2.0
flask-cors==5.0.1
diff --git a/src/payment/Dockerfile b/src/payment/Dockerfile
index 60b0a35bde..bd6630d38f 100644
--- a/src/payment/Dockerfile
+++ b/src/payment/Dockerfile
@@ -27,4 +27,8 @@ COPY ./src/payment/logger.js logger.js
EXPOSE ${PAYMENT_PORT}
-CMD ["index.js"]
+## The two steps below reproduce what "npm run start" would do, but using
+## distroless we cannot use "npm" directly.
+ENV OTEL_EXPORTER_OTLP_PROTOCOL=grpc
+
+CMD [ "--import", "@elastic/opentelemetry-node", "index.js" ]
diff --git a/src/payment/package.json b/src/payment/package.json
index 9c90e23ca4..a5c476cbed 100644
--- a/src/payment/package.json
+++ b/src/payment/package.json
@@ -11,7 +11,7 @@
"author": "Jonathan Lui",
"license": "ISC",
"dependencies": {
- "@elastic/opentelemetry-node": "^1.0.0",
+ "@elastic/opentelemetry-node": "1.5.0",
"@grpc/grpc-js": "1.12.6",
"@grpc/proto-loader": "0.8.0",
"@openfeature/flagd-provider": "0.13.3",
diff --git a/src/recommendation/requirements.txt b/src/recommendation/requirements.txt
index 9442fac1cd..1135d0e080 100644
--- a/src/recommendation/requirements.txt
+++ b/src/recommendation/requirements.txt
@@ -1,7 +1,7 @@
grpcio-health-checking==1.71.0
grpcio==1.71.0
-elastic-opentelemetry==1.8.0
+elastic-opentelemetry==1.9.0
python-dotenv==1.1.1
python-json-logger==3.3.0