From 873e4f88a6dc2010f7560e8999a5db607e70cad1 Mon Sep 17 00:00:00 2001
From: Nick Zimmermann <Nick.Zimmermann@swisscom.com>
Date: Wed, 12 Feb 2025 12:00:16 +0100
Subject: [PATCH 01/12] feat: improve error handling

Signed-off-by: Nick Zimmermann <Nick.Zimmermann@swisscom.com>
---
 .../bean/GoFeatureFlagResponse.java             |  1 +
 .../controller/GoFeatureFlagController.java     | 17 ++++++++++++-----
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/providers/go-feature-flag/src/main/java/dev/openfeature/contrib/providers/gofeatureflag/bean/GoFeatureFlagResponse.java b/providers/go-feature-flag/src/main/java/dev/openfeature/contrib/providers/gofeatureflag/bean/GoFeatureFlagResponse.java
index 79e2c99b5..4d8274725 100644
--- a/providers/go-feature-flag/src/main/java/dev/openfeature/contrib/providers/gofeatureflag/bean/GoFeatureFlagResponse.java
+++ b/providers/go-feature-flag/src/main/java/dev/openfeature/contrib/providers/gofeatureflag/bean/GoFeatureFlagResponse.java
@@ -12,6 +12,7 @@ public class GoFeatureFlagResponse {
     private String version;
     private String reason;
     private String errorCode;
+    private String message;
     private Object value;
     private Boolean cacheable;
     private Map<String, Object> metadata;
diff --git a/providers/go-feature-flag/src/main/java/dev/openfeature/contrib/providers/gofeatureflag/controller/GoFeatureFlagController.java b/providers/go-feature-flag/src/main/java/dev/openfeature/contrib/providers/gofeatureflag/controller/GoFeatureFlagController.java
index c39bfee4b..e2ca9f00c 100644
--- a/providers/go-feature-flag/src/main/java/dev/openfeature/contrib/providers/gofeatureflag/controller/GoFeatureFlagController.java
+++ b/providers/go-feature-flag/src/main/java/dev/openfeature/contrib/providers/gofeatureflag/controller/GoFeatureFlagController.java
@@ -27,6 +27,7 @@
 import dev.openfeature.sdk.Reason;
 import dev.openfeature.sdk.exceptions.FlagNotFoundError;
 import dev.openfeature.sdk.exceptions.GeneralError;
+import dev.openfeature.sdk.exceptions.InvalidContextError;
 import dev.openfeature.sdk.exceptions.OpenFeatureError;
 import dev.openfeature.sdk.exceptions.TypeMismatchError;
 import java.io.IOException;
@@ -156,17 +157,23 @@ public <T> EvaluationResponse<T> evaluateFlag(
             }
 
             try (Response response = this.httpClient.newCall(reqBuilder.build()).execute()) {
-                if (response.code() == HttpURLConnection.HTTP_UNAUTHORIZED) {
-                    throw new GeneralError("invalid token used to contact GO Feature Flag relay proxy instance");
-                }
-                if (response.code() >= HttpURLConnection.HTTP_BAD_REQUEST) {
-                    throw new GeneralError("impossible to contact GO Feature Flag relay proxy instance");
+                if (response.code() == HttpURLConnection.HTTP_UNAUTHORIZED
+                        || response.code() == HttpURLConnection.HTTP_FORBIDDEN) {
+                    throw new GeneralError("authentication/authorization error");
                 }
 
                 ResponseBody responseBody = response.body();
                 String body = responseBody != null ? responseBody.string() : "";
                 GoFeatureFlagResponse goffResp = responseMapper.readValue(body, GoFeatureFlagResponse.class);
 
+                if (response.code() == HttpURLConnection.HTTP_BAD_REQUEST) {
+                    throw new InvalidContextError("Invalid context " + goffResp.getMessage());
+                }
+
+                if (response.code() == HttpURLConnection.HTTP_INTERNAL_ERROR) {
+                    throw new GeneralError("Unknown error while retrieving flag " + goffResp.getMessage());
+                }
+
                 if (Reason.DISABLED.name().equalsIgnoreCase(goffResp.getReason())) {
                     // we don't set a variant since we are using the default value, and we are not able to
                     // know

From 1ba540ebbb5990eb767a932784c23eb2796e4b97 Mon Sep 17 00:00:00 2001
From: Todd Baert <todd.baert@dynatrace.com>
Date: Wed, 12 Feb 2025 09:09:42 -0500
Subject: [PATCH 02/12] chore: remove release as release-please-config.json

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Signed-off-by: Nick Zimmermann <Nick.Zimmermann@swisscom.com>
---
 release-please-config.json | 1 -
 1 file changed, 1 deletion(-)

diff --git a/release-please-config.json b/release-please-config.json
index 3e8df0fac..b8a017625 100644
--- a/release-please-config.json
+++ b/release-please-config.json
@@ -5,7 +5,6 @@
     "providers/flagd": {
       "package-name": "dev.openfeature.contrib.providers.flagd",
       "release-type": "simple",
-      "release-as": "0.10.5",
       "bump-minor-pre-major": true,
       "bump-patch-for-minor-pre-major": true,
       "versioning": "default",

From c9852a0c8e5eef59680f96dd679bb9858a2ba1c1 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
 <41898282+github-actions[bot]@users.noreply.github.com>
Date: Wed, 12 Feb 2025 09:11:30 -0500
Subject: [PATCH 03/12] chore(main): release
 dev.openfeature.contrib.providers.flagd 0.11.0 (#1215)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Signed-off-by: Nick Zimmermann <Nick.Zimmermann@swisscom.com>
---
 .release-please-manifest.json |  2 +-
 providers/flagd/CHANGELOG.md  | 47 +++++++++++++++++++++++++++++++++++
 providers/flagd/README.md     |  2 +-
 providers/flagd/pom.xml       |  2 +-
 providers/flagd/version.txt   |  2 +-
 5 files changed, 51 insertions(+), 4 deletions(-)

diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 917fe170d..94f4a1c8e 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,5 +1,5 @@
 {
-  "providers/flagd": "0.10.5",
+  "providers/flagd": "0.11.0",
   "hooks/open-telemetry": "3.2.1",
   "providers/go-feature-flag": "0.4.2",
   "providers/flagsmith": "0.0.9",
diff --git a/providers/flagd/CHANGELOG.md b/providers/flagd/CHANGELOG.md
index d4cad30fa..6332e70e4 100644
--- a/providers/flagd/CHANGELOG.md
+++ b/providers/flagd/CHANGELOG.md
@@ -1,5 +1,52 @@
 # Changelog
 
+## [0.11.0](https://github.com/open-feature/java-sdk-contrib/compare/dev.openfeature.contrib.providers.flagd-v0.10.5...dev.openfeature.contrib.providers.flagd-v0.11.0) (2025-02-12)
+
+
+### โš  BREAKING CHANGES
+
+* implement grpc reconnect for inprocess mode ([#1150](https://github.com/open-feature/java-sdk-contrib/issues/1150))
+* Use grpc intern reconnections for  rpc event stream ([#1112](https://github.com/open-feature/java-sdk-contrib/issues/1112))
+
+### ๐Ÿ› Bug Fixes
+
+* **deps:** update dependency com.google.code.gson:gson to v2.12.0 ([#1184](https://github.com/open-feature/java-sdk-contrib/issues/1184)) ([40795a6](https://github.com/open-feature/java-sdk-contrib/commit/40795a6e52295e56f0604ea7a6c8fe61c1e1c04e))
+* **deps:** update dependency com.google.code.gson:gson to v2.12.1 ([#1188](https://github.com/open-feature/java-sdk-contrib/issues/1188)) ([c24ef48](https://github.com/open-feature/java-sdk-contrib/commit/c24ef489910bf11a5be4b9f554d979fb739690b4))
+* **deps:** update dependency com.google.protobuf:protobuf-java to v3.25.6 ([#1178](https://github.com/open-feature/java-sdk-contrib/issues/1178)) ([417c6df](https://github.com/open-feature/java-sdk-contrib/commit/417c6df6b7e47dd2cd7a335af4846e331e8b5cea))
+* **deps:** update dependency com.networknt:json-schema-validator to v1.5.5 ([#1156](https://github.com/open-feature/java-sdk-contrib/issues/1156)) ([514004f](https://github.com/open-feature/java-sdk-contrib/commit/514004fa77180c12bf24c64aba83b3b37471f0c7))
+* **deps:** update dependency commons-codec:commons-codec to v1.17.2 ([#1145](https://github.com/open-feature/java-sdk-contrib/issues/1145)) ([ee91441](https://github.com/open-feature/java-sdk-contrib/commit/ee91441b97b0622d54bc36d1be9be85f7f2372c6))
+* **deps:** update dependency commons-codec:commons-codec to v1.18.0 ([#1181](https://github.com/open-feature/java-sdk-contrib/issues/1181)) ([d49d98f](https://github.com/open-feature/java-sdk-contrib/commit/d49d98fa573b677b4c34abf38e1e0e8d351aa0e2))
+* **deps:** update dependency io.netty:netty-transport-native-epoll to v4.1.117.final ([#1155](https://github.com/open-feature/java-sdk-contrib/issues/1155)) ([5a293bb](https://github.com/open-feature/java-sdk-contrib/commit/5a293bbd2ee387d62f3f27e617e79e143d4e8b06))
+* **deps:** update dependency io.netty:netty-transport-native-epoll to v4.1.118.final ([#1212](https://github.com/open-feature/java-sdk-contrib/issues/1212)) ([7e5ced2](https://github.com/open-feature/java-sdk-contrib/commit/7e5ced2c469e1286a8d21c5aba67eb5342a91831))
+* **deps:** update dependency io.opentelemetry:opentelemetry-api to v1.46.0 ([#1151](https://github.com/open-feature/java-sdk-contrib/issues/1151)) ([8fb4194](https://github.com/open-feature/java-sdk-contrib/commit/8fb41945fe5c5a5d1ec0847ed3eaa595629b4362))
+* **deps:** update dependency org.semver4j:semver4j to v5.6.0 ([#1171](https://github.com/open-feature/java-sdk-contrib/issues/1171)) ([23c5e69](https://github.com/open-feature/java-sdk-contrib/commit/23c5e6965426f6fc8fdbf6c9ee7941519402d774))
+* **deps:** update grpc-java monorepo to v1.69.1 ([#1161](https://github.com/open-feature/java-sdk-contrib/issues/1161)) ([23db163](https://github.com/open-feature/java-sdk-contrib/commit/23db16318ef5d7cff3f6a701717addfef0d482cc))
+* **deps:** update grpc-java monorepo to v1.70.0 ([#1172](https://github.com/open-feature/java-sdk-contrib/issues/1172)) ([ac751e8](https://github.com/open-feature/java-sdk-contrib/commit/ac751e8b7807eb39d6f74f767e18962b7bc69040))
+* **deps:** update opentelemetry-java monorepo to v1.47.0 ([#1206](https://github.com/open-feature/java-sdk-contrib/issues/1206)) ([34cd441](https://github.com/open-feature/java-sdk-contrib/commit/34cd4411ba768a602e399f7f23a7b1b8fbdfd77b))
+* rpc caching not behaving as expected (cleared too often) ([#1115](https://github.com/open-feature/java-sdk-contrib/issues/1115)) ([b4fe2f4](https://github.com/open-feature/java-sdk-contrib/commit/b4fe2f48ebb1368973d4f44c1a83d638b0e8b8b0))
+
+
+### โœจ New Features
+
+* **flagd:** migrate file to own provider type ([#1173](https://github.com/open-feature/java-sdk-contrib/issues/1173)) ([1bd8f86](https://github.com/open-feature/java-sdk-contrib/commit/1bd8f861755f998f0756684e69a5cf0ce6d7226a))
+* implement grpc reconnect for inprocess mode ([#1150](https://github.com/open-feature/java-sdk-contrib/issues/1150)) ([d2410c7](https://github.com/open-feature/java-sdk-contrib/commit/d2410c70edcb59d3c5eedcff6071ca4963a096ac))
+* Update in-process resolver to support flag metadata [#1102](https://github.com/open-feature/java-sdk-contrib/issues/1102) ([#1122](https://github.com/open-feature/java-sdk-contrib/issues/1122)) ([a330bd6](https://github.com/open-feature/java-sdk-contrib/commit/a330bd66aa50b85661feae8534e7e3def9287e5d))
+* Use grpc intern reconnections for  rpc event stream ([#1112](https://github.com/open-feature/java-sdk-contrib/issues/1112)) ([d66adc9](https://github.com/open-feature/java-sdk-contrib/commit/d66adc914111c773dfbcfb78617a633b96f7f7c0))
+
+
+### ๐Ÿงน Chore
+
+* **deps:** update dependency providers/flagd/test-harness to v2 ([#1195](https://github.com/open-feature/java-sdk-contrib/issues/1195)) ([e1f2bc3](https://github.com/open-feature/java-sdk-contrib/commit/e1f2bc3dccd7734598b05baa4ec161a050ba4c5e))
+* **deps:** update providers/flagd/schemas digest to 37baa2c ([#1142](https://github.com/open-feature/java-sdk-contrib/issues/1142)) ([d75e620](https://github.com/open-feature/java-sdk-contrib/commit/d75e62006a105f9f1a7e1d4e4d2d2c0f412ed6c6))
+* **deps:** update providers/flagd/schemas digest to bb76343 ([#1180](https://github.com/open-feature/java-sdk-contrib/issues/1180)) ([142560f](https://github.com/open-feature/java-sdk-contrib/commit/142560f7a2ab77ba951321b5ea92deefe9ba3ee9))
+* **deps:** update providers/flagd/schemas digest to bb76343 ([#1196](https://github.com/open-feature/java-sdk-contrib/issues/1196)) ([4fdb0a9](https://github.com/open-feature/java-sdk-contrib/commit/4fdb0a9d1d992a9d3d79e9a56942b20aa1142f85))
+* **deps:** update providers/flagd/spec digest to 5b07065 ([#1179](https://github.com/open-feature/java-sdk-contrib/issues/1179)) ([63bb327](https://github.com/open-feature/java-sdk-contrib/commit/63bb3278002c90d1fa4ace2752e2fdce1025bc90))
+* **deps:** update providers/flagd/spec digest to 6c673d7 ([#1157](https://github.com/open-feature/java-sdk-contrib/issues/1157)) ([cd0ea9e](https://github.com/open-feature/java-sdk-contrib/commit/cd0ea9e8d3d303b675b5d33287d94394e3c3aa6c))
+* **deps:** update providers/flagd/spec digest to 8d6eeb3 ([#1194](https://github.com/open-feature/java-sdk-contrib/issues/1194)) ([d38e013](https://github.com/open-feature/java-sdk-contrib/commit/d38e013b83ac5bc0545a90a3c173a07c5788f460))
+* **deps:** update providers/flagd/spec digest to 8d6eeb3 ([#1197](https://github.com/open-feature/java-sdk-contrib/issues/1197)) ([da76294](https://github.com/open-feature/java-sdk-contrib/commit/da76294aec6e3f07addc7a5f60bc862e127d439a))
+* **deps:** update providers/flagd/spec digest to 95fe981 ([#1201](https://github.com/open-feature/java-sdk-contrib/issues/1201)) ([49b4218](https://github.com/open-feature/java-sdk-contrib/commit/49b4218af69fad8d639cab095ec94b5db72d769e))
+* **deps:** update providers/flagd/spec digest to be56f22 ([#1210](https://github.com/open-feature/java-sdk-contrib/issues/1210)) ([5628cbc](https://github.com/open-feature/java-sdk-contrib/commit/5628cbc28d86ed6e221e7ca068d81106bcfc36cd))
+
 ## [0.10.5](https://github.com/open-feature/java-sdk-contrib/compare/dev.openfeature.contrib.providers.flagd-v0.10.2...dev.openfeature.contrib.providers.flagd-v0.10.5) (2025-01-03)
 
 
diff --git a/providers/flagd/README.md b/providers/flagd/README.md
index d57aac682..67162b8d0 100644
--- a/providers/flagd/README.md
+++ b/providers/flagd/README.md
@@ -8,7 +8,7 @@ This provider is designed to use flagd's [evaluation protocol](https://github.co
 <dependency>
   <groupId>dev.openfeature.contrib.providers</groupId>
   <artifactId>flagd</artifactId>
-  <version>0.10.5</version>
+  <version>0.11.0</version>
 </dependency>
 ```
 <!-- x-release-please-end-version -->
diff --git a/providers/flagd/pom.xml b/providers/flagd/pom.xml
index 6a247b9d4..cfb1bccc1 100644
--- a/providers/flagd/pom.xml
+++ b/providers/flagd/pom.xml
@@ -10,7 +10,7 @@
     </parent>
     <groupId>dev.openfeature.contrib.providers</groupId>
     <artifactId>flagd</artifactId>
-    <version>0.10.5</version> <!--x-release-please-version -->
+    <version>0.11.0</version> <!--x-release-please-version -->
 
     <properties>
         <!-- exclusion expression for e2e tests -->
diff --git a/providers/flagd/version.txt b/providers/flagd/version.txt
index 9028ec636..d9df1bbc0 100644
--- a/providers/flagd/version.txt
+++ b/providers/flagd/version.txt
@@ -1 +1 @@
-0.10.5
+0.11.0

From 63b82dd55d76b636b58b534830d448fb0464c41e Mon Sep 17 00:00:00 2001
From: Todd Baert <todd.baert@dynatrace.com>
Date: Wed, 12 Feb 2025 13:15:01 -0500
Subject: [PATCH 04/12] fix: missing common lang dep (#1216)

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Signed-off-by: Nick Zimmermann <Nick.Zimmermann@swisscom.com>
---
 providers/flagd/pom.xml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/providers/flagd/pom.xml b/providers/flagd/pom.xml
index cfb1bccc1..8122eda94 100644
--- a/providers/flagd/pom.xml
+++ b/providers/flagd/pom.xml
@@ -113,6 +113,12 @@
             <version>4.4</version>
         </dependency>
 
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <version>3.17.0</version>
+        </dependency>
+
         <dependency>
             <groupId>io.opentelemetry</groupId>
             <artifactId>opentelemetry-api</artifactId>

From 0451ee6015e2f500f6b0ce54713ba42bfb516a1c Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
 <41898282+github-actions[bot]@users.noreply.github.com>
Date: Wed, 12 Feb 2025 13:22:22 -0500
Subject: [PATCH 05/12] chore(main): release
 dev.openfeature.contrib.providers.flagd 0.11.1 (#1217)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Signed-off-by: Nick Zimmermann <Nick.Zimmermann@swisscom.com>
---
 .release-please-manifest.json | 2 +-
 providers/flagd/CHANGELOG.md  | 7 +++++++
 providers/flagd/README.md     | 2 +-
 providers/flagd/pom.xml       | 2 +-
 providers/flagd/version.txt   | 2 +-
 5 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 94f4a1c8e..12bd71048 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,5 +1,5 @@
 {
-  "providers/flagd": "0.11.0",
+  "providers/flagd": "0.11.1",
   "hooks/open-telemetry": "3.2.1",
   "providers/go-feature-flag": "0.4.2",
   "providers/flagsmith": "0.0.9",
diff --git a/providers/flagd/CHANGELOG.md b/providers/flagd/CHANGELOG.md
index 6332e70e4..5e1b38d37 100644
--- a/providers/flagd/CHANGELOG.md
+++ b/providers/flagd/CHANGELOG.md
@@ -1,5 +1,12 @@
 # Changelog
 
+## [0.11.1](https://github.com/open-feature/java-sdk-contrib/compare/dev.openfeature.contrib.providers.flagd-v0.11.0...dev.openfeature.contrib.providers.flagd-v0.11.1) (2025-02-12)
+
+
+### ๐Ÿ› Bug Fixes
+
+* missing common lang dep ([#1216](https://github.com/open-feature/java-sdk-contrib/issues/1216)) ([379a89d](https://github.com/open-feature/java-sdk-contrib/commit/379a89d0563982dcb65ca060678d049e2e39f264))
+
 ## [0.11.0](https://github.com/open-feature/java-sdk-contrib/compare/dev.openfeature.contrib.providers.flagd-v0.10.5...dev.openfeature.contrib.providers.flagd-v0.11.0) (2025-02-12)
 
 
diff --git a/providers/flagd/README.md b/providers/flagd/README.md
index 67162b8d0..34cf2499a 100644
--- a/providers/flagd/README.md
+++ b/providers/flagd/README.md
@@ -8,7 +8,7 @@ This provider is designed to use flagd's [evaluation protocol](https://github.co
 <dependency>
   <groupId>dev.openfeature.contrib.providers</groupId>
   <artifactId>flagd</artifactId>
-  <version>0.11.0</version>
+  <version>0.11.1</version>
 </dependency>
 ```
 <!-- x-release-please-end-version -->
diff --git a/providers/flagd/pom.xml b/providers/flagd/pom.xml
index 8122eda94..8c0475ee9 100644
--- a/providers/flagd/pom.xml
+++ b/providers/flagd/pom.xml
@@ -10,7 +10,7 @@
     </parent>
     <groupId>dev.openfeature.contrib.providers</groupId>
     <artifactId>flagd</artifactId>
-    <version>0.11.0</version> <!--x-release-please-version -->
+    <version>0.11.1</version> <!--x-release-please-version -->
 
     <properties>
         <!-- exclusion expression for e2e tests -->
diff --git a/providers/flagd/version.txt b/providers/flagd/version.txt
index d9df1bbc0..af88ba824 100644
--- a/providers/flagd/version.txt
+++ b/providers/flagd/version.txt
@@ -1 +1 @@
-0.11.0
+0.11.1

From 63b8d328c00ae91cde415a2d5ab7ac32d188ca26 Mon Sep 17 00:00:00 2001
From: chrfwow <christian.lutnik@dynatrace.com>
Date: Thu, 13 Feb 2025 16:01:27 +0100
Subject: [PATCH 06/12] chore(flagd): Improve grpc logging (#1219)

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>
Signed-off-by: Nick Zimmermann <Nick.Zimmermann@swisscom.com>
---
 .../providers/flagd/resolver/common/ChannelMonitor.java     | 2 +-
 .../process/storage/connector/grpc/GrpcStreamConnector.java | 6 +++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/common/ChannelMonitor.java b/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/common/ChannelMonitor.java
index 7e27da34b..09edad8d5 100644
--- a/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/common/ChannelMonitor.java
+++ b/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/common/ChannelMonitor.java
@@ -48,7 +48,7 @@ public static void monitorChannelState(
                 }
             }
             if (currentState != ConnectivityState.SHUTDOWN) {
-                log.debug("shutting down grpc channel");
+                log.debug("continuing to monitor the grpc channel");
                 // Re-register the state monitor to watch for the next state transition.
                 monitorChannelState(currentState, channel, onConnectionReady, onConnectionLost);
             }
diff --git a/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/process/storage/connector/grpc/GrpcStreamConnector.java b/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/process/storage/connector/grpc/GrpcStreamConnector.java
index e76ebfb24..2b359d236 100644
--- a/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/process/storage/connector/grpc/GrpcStreamConnector.java
+++ b/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/process/storage/connector/grpc/GrpcStreamConnector.java
@@ -116,6 +116,7 @@ void observeEventStream(final BlockingQueue<QueuePayload> writeTo, final AtomicB
                     // instead of logging and throwing here, retain the exception and handle in the
                     // stream logic below
                     metadataException = e;
+                    log.debug("Metadata exception: {}", e.getMessage(), e);
                 }
 
                 while (!shutdown.get()) {
@@ -129,7 +130,10 @@ void observeEventStream(final BlockingQueue<QueuePayload> writeTo, final AtomicB
 
                     Throwable streamException = response.getError();
                     if (streamException != null || metadataException != null) {
-                        log.debug("Exception in GRPC connection");
+                        log.debug(
+                                "Exception in GRPC connection, streamException {}, metadataException {}",
+                                streamException,
+                                metadataException);
                         if (!writeTo.offer(new QueuePayload(
                                 QueuePayloadType.ERROR, "Error from stream or metadata", metadataResponse))) {
                             log.error("Failed to convey ERROR status, queue is full");

From 71c5e8b826b57a75ba5e3f126255a4409a246857 Mon Sep 17 00:00:00 2001
From: Simon Schrottner <simon.schrottner@dynatrace.com>
Date: Thu, 13 Feb 2025 16:39:03 +0100
Subject: [PATCH 07/12] fix: selector not being sent in sync call (#1220)

Signed-off-by: Simon Schrottner <simon.schrottner@dynatrace.com>
Signed-off-by: Nick Zimmermann <Nick.Zimmermann@swisscom.com>
---
 .../connector/grpc/GrpcStreamConnector.java      | 16 ++++++++++------
 .../contrib/providers/flagd/e2e/RunFileTest.java |  2 +-
 .../providers/flagd/e2e/RunInProcessTest.java    |  2 +-
 .../providers/flagd/e2e/steps/ProviderSteps.java |  1 -
 providers/flagd/test-harness                     |  2 +-
 5 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/process/storage/connector/grpc/GrpcStreamConnector.java b/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/process/storage/connector/grpc/GrpcStreamConnector.java
index 2b359d236..541c2fd15 100644
--- a/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/process/storage/connector/grpc/GrpcStreamConnector.java
+++ b/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/process/storage/connector/grpc/GrpcStreamConnector.java
@@ -51,7 +51,16 @@ public GrpcStreamConnector(final FlagdOptions options, Consumer<FlagdProviderEve
                 FlagSyncServiceGrpc::newStub,
                 FlagSyncServiceGrpc::newBlockingStub,
                 onConnectionEvent,
-                stub -> stub.syncFlags(SyncFlagsRequest.getDefaultInstance(), new GrpcStreamHandler(streamReceiver)));
+                stub -> {
+                    String localSelector = selector;
+
+                    final SyncFlagsRequest.Builder syncRequest = SyncFlagsRequest.newBuilder();
+                    if (localSelector != null) {
+                        syncRequest.setSelector(localSelector);
+                    }
+
+                    stub.syncFlags(syncRequest.build(), new GrpcStreamHandler(streamReceiver));
+                });
     }
 
     /** Initialize gRPC stream connector. */
@@ -98,14 +107,9 @@ void observeEventStream(final BlockingQueue<QueuePayload> writeTo, final AtomicB
             Exception metadataException = null;
 
             log.debug("Initializing sync stream request");
-            final SyncFlagsRequest.Builder syncRequest = SyncFlagsRequest.newBuilder();
             final GetMetadataRequest.Builder metadataRequest = GetMetadataRequest.newBuilder();
             GetMetadataResponse metadataResponse = GetMetadataResponse.getDefaultInstance();
 
-            if (selector != null) {
-                syncRequest.setSelector(selector);
-            }
-
             try (CancellableContext context = Context.current().withCancellation()) {
 
                 try {
diff --git a/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunFileTest.java b/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunFileTest.java
index 7d499390c..099e2f4c9 100644
--- a/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunFileTest.java
+++ b/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunFileTest.java
@@ -28,7 +28,7 @@
 @ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "dev.openfeature.contrib.providers.flagd.e2e.steps")
 @ConfigurationParameter(key = OBJECT_FACTORY_PROPERTY_NAME, value = "io.cucumber.picocontainer.PicoFactory")
 @IncludeTags("file")
-@ExcludeTags({"unixsocket", "targetURI", "reconnect", "customCert"})
+@ExcludeTags({"unixsocket", "targetURI", "reconnect", "customCert", "events"})
 @Testcontainers
 public class RunFileTest {
 
diff --git a/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunInProcessTest.java b/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunInProcessTest.java
index 0c0b32420..3a1c33f03 100644
--- a/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunInProcessTest.java
+++ b/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunInProcessTest.java
@@ -24,7 +24,7 @@
 @IncludeEngines("cucumber")
 @SelectDirectories("test-harness/gherkin")
 // if you want to run just one feature file, use the following line instead of @SelectDirectories
-// @SelectFile("test-harness/gherkin/connection.feature")
+// @SelectFile("test-harness/gherkin/selector.feature")
 @ConfigurationParameter(key = PLUGIN_PROPERTY_NAME, value = "pretty")
 @ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "dev.openfeature.contrib.providers.flagd.e2e.steps")
 @ConfigurationParameter(key = OBJECT_FACTORY_PROPERTY_NAME, value = "io.cucumber.picocontainer.PicoFactory")
diff --git a/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/steps/ProviderSteps.java b/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/steps/ProviderSteps.java
index ce0fc4234..77f3ddabd 100644
--- a/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/steps/ProviderSteps.java
+++ b/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/steps/ProviderSteps.java
@@ -40,7 +40,6 @@ public ProviderSteps(State state) {
 
     @BeforeAll
     public static void beforeAll() throws IOException {
-        State.resolverType = Config.Resolver.RPC;
         sharedTempDir = Files.createDirectories(
                 Paths.get("tmp/" + RandomStringUtils.randomAlphanumeric(8).toLowerCase() + "/"));
         container = new FlagdContainer()
diff --git a/providers/flagd/test-harness b/providers/flagd/test-harness
index ec1d75c3b..f5afee5aa 160000
--- a/providers/flagd/test-harness
+++ b/providers/flagd/test-harness
@@ -1 +1 @@
-Subproject commit ec1d75c3b93c1cc54828e517ad744a5150d0598a
+Subproject commit f5afee5aa8e94bb9fc0becbb5928a5b4bd44729a

From 460d4f41952341a583fe78a6faffa7303aa58798 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
 <41898282+github-actions[bot]@users.noreply.github.com>
Date: Thu, 13 Feb 2025 10:41:31 -0500
Subject: [PATCH 08/12] chore(main): release
 dev.openfeature.contrib.providers.flagd 0.11.2 (#1221)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Signed-off-by: Nick Zimmermann <Nick.Zimmermann@swisscom.com>
---
 .release-please-manifest.json |  2 +-
 providers/flagd/CHANGELOG.md  | 12 ++++++++++++
 providers/flagd/README.md     |  2 +-
 providers/flagd/pom.xml       |  2 +-
 providers/flagd/version.txt   |  2 +-
 5 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 12bd71048..5b0bce36b 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,5 +1,5 @@
 {
-  "providers/flagd": "0.11.1",
+  "providers/flagd": "0.11.2",
   "hooks/open-telemetry": "3.2.1",
   "providers/go-feature-flag": "0.4.2",
   "providers/flagsmith": "0.0.9",
diff --git a/providers/flagd/CHANGELOG.md b/providers/flagd/CHANGELOG.md
index 5e1b38d37..646b05e52 100644
--- a/providers/flagd/CHANGELOG.md
+++ b/providers/flagd/CHANGELOG.md
@@ -1,5 +1,17 @@
 # Changelog
 
+## [0.11.2](https://github.com/open-feature/java-sdk-contrib/compare/dev.openfeature.contrib.providers.flagd-v0.11.1...dev.openfeature.contrib.providers.flagd-v0.11.2) (2025-02-13)
+
+
+### ๐Ÿ› Bug Fixes
+
+* selector not being sent in sync call ([#1220](https://github.com/open-feature/java-sdk-contrib/issues/1220)) ([99e25ce](https://github.com/open-feature/java-sdk-contrib/commit/99e25cead7c501e62a454b0ff37fe971b9fd5b13))
+
+
+### ๐Ÿงน Chore
+
+* **flagd:** Improve grpc logging ([#1219](https://github.com/open-feature/java-sdk-contrib/issues/1219)) ([34f83c5](https://github.com/open-feature/java-sdk-contrib/commit/34f83c5933ab5f2df81af348036f9c403c7963af))
+
 ## [0.11.1](https://github.com/open-feature/java-sdk-contrib/compare/dev.openfeature.contrib.providers.flagd-v0.11.0...dev.openfeature.contrib.providers.flagd-v0.11.1) (2025-02-12)
 
 
diff --git a/providers/flagd/README.md b/providers/flagd/README.md
index 34cf2499a..8ef9b7e50 100644
--- a/providers/flagd/README.md
+++ b/providers/flagd/README.md
@@ -8,7 +8,7 @@ This provider is designed to use flagd's [evaluation protocol](https://github.co
 <dependency>
   <groupId>dev.openfeature.contrib.providers</groupId>
   <artifactId>flagd</artifactId>
-  <version>0.11.1</version>
+  <version>0.11.2</version>
 </dependency>
 ```
 <!-- x-release-please-end-version -->
diff --git a/providers/flagd/pom.xml b/providers/flagd/pom.xml
index 8c0475ee9..eff4fff97 100644
--- a/providers/flagd/pom.xml
+++ b/providers/flagd/pom.xml
@@ -10,7 +10,7 @@
     </parent>
     <groupId>dev.openfeature.contrib.providers</groupId>
     <artifactId>flagd</artifactId>
-    <version>0.11.1</version> <!--x-release-please-version -->
+    <version>0.11.2</version> <!--x-release-please-version -->
 
     <properties>
         <!-- exclusion expression for e2e tests -->
diff --git a/providers/flagd/version.txt b/providers/flagd/version.txt
index af88ba824..bc859cbd6 100644
--- a/providers/flagd/version.txt
+++ b/providers/flagd/version.txt
@@ -1 +1 @@
-0.11.1
+0.11.2

From b938ffe2f41497605393e8e0a8c4db3d4f112ec7 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 13 Feb 2025 19:39:43 +0000
Subject: [PATCH 09/12] chore(deps): update providers/flagd/spec digest to
 54952f3 (#1218)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Nick Zimmermann <Nick.Zimmermann@swisscom.com>
---
 providers/flagd/spec | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/providers/flagd/spec b/providers/flagd/spec
index be56f22af..54952f3b5 160000
--- a/providers/flagd/spec
+++ b/providers/flagd/spec
@@ -1 +1 @@
-Subproject commit be56f22af99191eb36039db7b2fa18f46434a383
+Subproject commit 54952f3b545a09ce966a4dbb86c9490a1ce3333b

From c591f0ca4e7a187535846e4d2142657780e5d433 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 14 Feb 2025 00:13:53 +0000
Subject: [PATCH 10/12] chore(deps): update providers/flagd/test-harness digest
 to ec1d75c (#1198)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Nick Zimmermann <Nick.Zimmermann@swisscom.com>
---
 providers/flagd/test-harness | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/providers/flagd/test-harness b/providers/flagd/test-harness
index f5afee5aa..ec1d75c3b 160000
--- a/providers/flagd/test-harness
+++ b/providers/flagd/test-harness
@@ -1 +1 @@
-Subproject commit f5afee5aa8e94bb9fc0becbb5928a5b4bd44729a
+Subproject commit ec1d75c3b93c1cc54828e517ad744a5150d0598a

From 49149455342136943094551e54cad936e648295e Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 14 Feb 2025 03:07:46 +0000
Subject: [PATCH 11/12] chore(deps): update dependency
 providers/flagd/test-harness to v2.2.0 (#1223)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Nick Zimmermann <Nick.Zimmermann@swisscom.com>
---
 .gitmodules                  | 2 +-
 providers/flagd/test-harness | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/.gitmodules b/.gitmodules
index c2774bbc1..a8bdc72b1 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -4,7 +4,7 @@
 [submodule "providers/flagd/test-harness"]
 	path = providers/flagd/test-harness
 	url = https://github.com/open-feature/test-harness.git
-	branch = v2.1.0
+	branch = v2.2.0
 [submodule "providers/flagd/spec"]
 	path = providers/flagd/spec
 	url = https://github.com/open-feature/spec.git
diff --git a/providers/flagd/test-harness b/providers/flagd/test-harness
index ec1d75c3b..f5afee5aa 160000
--- a/providers/flagd/test-harness
+++ b/providers/flagd/test-harness
@@ -1 +1 @@
-Subproject commit ec1d75c3b93c1cc54828e517ad744a5150d0598a
+Subproject commit f5afee5aa8e94bb9fc0becbb5928a5b4bd44729a

From 503fbbc2ec12f5cb47c2b2a790c32252ed3261dc Mon Sep 17 00:00:00 2001
From: Nick Zimmermann <Nick.Zimmermann@swisscom.com>
Date: Mon, 17 Feb 2025 11:33:00 +0100
Subject: [PATCH 12/12] fix tests

Signed-off-by: Nick Zimmermann <Nick.Zimmermann@swisscom.com>
---
 .../providers/gofeatureflag/GoFeatureFlagProviderTest.java    | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/providers/go-feature-flag/src/test/java/dev/openfeature/contrib/providers/gofeatureflag/GoFeatureFlagProviderTest.java b/providers/go-feature-flag/src/test/java/dev/openfeature/contrib/providers/gofeatureflag/GoFeatureFlagProviderTest.java
index 38a81c60b..7c34fd927 100644
--- a/providers/go-feature-flag/src/test/java/dev/openfeature/contrib/providers/gofeatureflag/GoFeatureFlagProviderTest.java
+++ b/providers/go-feature-flag/src/test/java/dev/openfeature/contrib/providers/gofeatureflag/GoFeatureFlagProviderTest.java
@@ -238,7 +238,7 @@ void should_throw_an_error_if_endpoint_not_available() {
                 .value(false)
                 .reason(Reason.ERROR.name())
                 .errorCode(ErrorCode.GENERAL)
-                .errorMessage("impossible to contact GO Feature Flag relay proxy instance")
+                .errorMessage("unknown error while retrieving flag fail_500")
                 .build();
         assertEquals(want, got);
     }
@@ -259,7 +259,7 @@ void should_throw_an_error_if_invalid_api_key() {
                 .value(false)
                 .reason(Reason.ERROR.name())
                 .errorCode(ErrorCode.GENERAL)
-                .errorMessage("invalid token used to contact GO Feature Flag relay proxy instance")
+                .errorMessage("authentication/authorization error")
                 .build();
         assertEquals(want, got);
     }