diff --git a/bom/pom.xml b/bom/pom.xml
index eb4970fd..223f145b 100644
--- a/bom/pom.xml
+++ b/bom/pom.xml
@@ -18,7 +18,7 @@
UTF-8
UTF-8
- 26.45.0
+ 26.50.0
0.31.1
diff --git a/docs/modules/ROOT/pages/includes/quarkus-google-cloud-pubsub.adoc b/docs/modules/ROOT/pages/includes/quarkus-google-cloud-pubsub.adoc
index 5cdc8d91..fe0e1300 100644
--- a/docs/modules/ROOT/pages/includes/quarkus-google-cloud-pubsub.adoc
+++ b/docs/modules/ROOT/pages/includes/quarkus-google-cloud-pubsub.adoc
@@ -75,5 +75,25 @@ endif::add-copy-button-to-env-var[]
|string
|
+a| [[quarkus-google-cloud-pubsub_quarkus-google-cloud-pubsub-use-emulator-credentials]] [.property-path]##link:#quarkus-google-cloud-pubsub_quarkus-google-cloud-pubsub-use-emulator-credentials[`quarkus.google.cloud.pubsub.use-emulator-credentials`]##
+
+[.description]
+--
+Forces the usage of emulator credentials. The logic automatically uses emulator credentials in case the emulatorHost is set.
+
+ - If true: force usage of emulator credentials
+ - If false: force not using emulator credentials
+
+
+ifdef::add-copy-button-to-env-var[]
+Environment variable: env_var_with_copy_button:+++QUARKUS_GOOGLE_CLOUD_PUBSUB_USE_EMULATOR_CREDENTIALS+++[]
+endif::add-copy-button-to-env-var[]
+ifndef::add-copy-button-to-env-var[]
+Environment variable: `+++QUARKUS_GOOGLE_CLOUD_PUBSUB_USE_EMULATOR_CREDENTIALS+++`
+endif::add-copy-button-to-env-var[]
+--
+|boolean
+|`true`
+
|===
diff --git a/docs/modules/ROOT/pages/includes/quarkus-google-cloud-pubsub_quarkus.google.adoc b/docs/modules/ROOT/pages/includes/quarkus-google-cloud-pubsub_quarkus.google.adoc
index 5cdc8d91..fe0e1300 100644
--- a/docs/modules/ROOT/pages/includes/quarkus-google-cloud-pubsub_quarkus.google.adoc
+++ b/docs/modules/ROOT/pages/includes/quarkus-google-cloud-pubsub_quarkus.google.adoc
@@ -75,5 +75,25 @@ endif::add-copy-button-to-env-var[]
|string
|
+a| [[quarkus-google-cloud-pubsub_quarkus-google-cloud-pubsub-use-emulator-credentials]] [.property-path]##link:#quarkus-google-cloud-pubsub_quarkus-google-cloud-pubsub-use-emulator-credentials[`quarkus.google.cloud.pubsub.use-emulator-credentials`]##
+
+[.description]
+--
+Forces the usage of emulator credentials. The logic automatically uses emulator credentials in case the emulatorHost is set.
+
+ - If true: force usage of emulator credentials
+ - If false: force not using emulator credentials
+
+
+ifdef::add-copy-button-to-env-var[]
+Environment variable: env_var_with_copy_button:+++QUARKUS_GOOGLE_CLOUD_PUBSUB_USE_EMULATOR_CREDENTIALS+++[]
+endif::add-copy-button-to-env-var[]
+ifndef::add-copy-button-to-env-var[]
+Environment variable: `+++QUARKUS_GOOGLE_CLOUD_PUBSUB_USE_EMULATOR_CREDENTIALS+++`
+endif::add-copy-button-to-env-var[]
+--
+|boolean
+|`true`
+
|===
diff --git a/integration-tests/main/src/main/java/io/quarkiverse/googlecloudservices/it/BigtableResource.java b/integration-tests/main/src/main/java/io/quarkiverse/googlecloudservices/it/BigtableResource.java
index aff28ae2..ee90b970 100644
--- a/integration-tests/main/src/main/java/io/quarkiverse/googlecloudservices/it/BigtableResource.java
+++ b/integration-tests/main/src/main/java/io/quarkiverse/googlecloudservices/it/BigtableResource.java
@@ -22,6 +22,7 @@
import com.google.cloud.bigtable.admin.v2.stub.EnhancedBigtableTableAdminStub;
import com.google.cloud.bigtable.data.v2.BigtableDataClient;
import com.google.cloud.bigtable.data.v2.BigtableDataSettings;
+import com.google.cloud.bigtable.data.v2.internal.TableAdminRequestContext;
import com.google.cloud.bigtable.data.v2.models.Row;
import com.google.cloud.bigtable.data.v2.models.RowCell;
import com.google.cloud.bigtable.data.v2.models.RowMutation;
@@ -63,7 +64,8 @@ void initBigtable() throws IOException {
.newBuilder()
.setTransportChannelProvider(channelProvider)
.setCredentialsProvider(credentialsProvider)
- .build());
+ .build(),
+ TableAdminRequestContext.create(projectId, INSTANCE_ID));
try (BigtableTableAdminClient adminClient = BigtableTableAdminClient.create(projectId, INSTANCE_ID, stub)) {
if (!adminClient.exists(TABLE_ID)) {
diff --git a/logging/runtime/src/test/java/io/quarkiverse/googlecloudservices/logging/runtime/LoggingHandlerTest.java b/logging/runtime/src/test/java/io/quarkiverse/googlecloudservices/logging/runtime/LoggingHandlerTest.java
index be2ec69a..a849a308 100644
--- a/logging/runtime/src/test/java/io/quarkiverse/googlecloudservices/logging/runtime/LoggingHandlerTest.java
+++ b/logging/runtime/src/test/java/io/quarkiverse/googlecloudservices/logging/runtime/LoggingHandlerTest.java
@@ -58,6 +58,9 @@ void shouldLogToStdoutWithTraceInfoAndLabels() {
ArcContainer container = createArcContainer(traceId, spanId);
+ // There can be JVM logs before our log so we clean the output stream captor
+ outputStreamCaptor.reset();
+
try (MockedStatic arc = Mockito.mockStatic(Arc.class)) {
arc.when(Arc::container).thenReturn(container);
diff --git a/pubsub/runtime/src/main/java/io/quarkiverse/googlecloudservices/pubsub/QuarkusPubSub.java b/pubsub/runtime/src/main/java/io/quarkiverse/googlecloudservices/pubsub/QuarkusPubSub.java
index 50b2f31e..225439a7 100644
--- a/pubsub/runtime/src/main/java/io/quarkiverse/googlecloudservices/pubsub/QuarkusPubSub.java
+++ b/pubsub/runtime/src/main/java/io/quarkiverse/googlecloudservices/pubsub/QuarkusPubSub.java
@@ -4,7 +4,6 @@
import java.util.Optional;
import java.util.stream.StreamSupport;
-import com.google.api.gax.core.NoCredentialsProvider;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.PreDestroy;
import jakarta.enterprise.context.ApplicationScoped;
@@ -12,6 +11,7 @@
import jakarta.inject.Inject;
import com.google.api.gax.core.CredentialsProvider;
+import com.google.api.gax.core.NoCredentialsProvider;
import com.google.api.gax.grpc.GrpcTransportChannel;
import com.google.api.gax.rpc.FixedTransportChannelProvider;
import com.google.api.gax.rpc.TransportChannelProvider;