# Panic when deploying self-hosted temporal server

**URL:** <https://community.temporal.io/t/panic-when-deploying-self-hosted-temporal-server/18286>\
**Category:** Server Deployment\
**Created:** [September 2, 2025, 10:07pm UTC](https://community.temporal.io/t/panic-when-deploying-self-hosted-temporal-server/18286 "2025-09-02T22:07:49Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![hanetz](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/hanetz/32/7693_2.png) [@hanetz](https://community.temporal.io/u/hanetz)\
**Post date:** [September 2, 2025, 10:07pm UTC](https://community.temporal.io/t/panic-when-deploying-self-hosted-temporal-server/18286/1 "2025-09-02T22:07:49Z")

</div>

I am trying to deploy temporal server in GCP using the temporalio/server docker image. I successfully built and deployed the image, loaded the config and setup the temporal and visibility schemas. However, after all that is done I am getting a panic error:

panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x2798bd4] goroutine 1 [running]: [go.temporal.io/server/temporal.ApplyClusterMetadataConfigProvider](http://go.temporal.io/server/temporal.ApplyClusterMetadataConfigProvider)({0x38e5490, 0xc0008fce10}, 0xc000830a08, {0x3899080, 0x5760ca0}, 0x344e350, {0x0, 0x0}, {0x38e5760, 0x5760ca0}) /home/runner/work/docker-builds/docker-builds/temporal/temporal/fx.go:580 +0x1f4 reflect.Value.call({0x2d45120?, 0x344e388?, 0x30?}, {0x326711b, 0x4}, {0xc0002c1050, 0x6, 0x10?})…

I couldn’t find anything online to help with the investigation.  
This is my config.yaml:  
global:  
dynamicConfig:  
filepath: “/config/dynamic\_config.yaml”  
pollInterval: “10s”

persistence:  
defaultStore: default  
visibilityStore: visibility  
numHistoryShards: 512  
datastores:  
default:  
sql:  
pluginName: “postgres12\_pgx”  
databaseName: “${DB\_NAME}”  
connectAddr: “${DB\_HOST}”  
connectProtocol: “tcp”  
connectPort: “5432”  
user: “${DB\_USER}”  
password: “${DB\_PASSWORD}”  
visibility:  
sql:  
pluginName: “postgres12\_pgx”  
databaseName: “${DB\_VISIBILITY\_NAME}”  
connectAddr: “${DB\_HOST}”  
connectProtocol: “tcp”  
connectPort: “5432”  
user: “${DB\_USER}”  
password: “${DB\_PASSWORD}”

services:  
frontend:  
rpc:  
grpcPort: 7233  
membershipPort: 6933  
history:  
rpc:  
grpcPort: 7234  
membershipPort: 6934  
matching:  
rpc:  
grpcPort: 7235  
membershipPort: 6935  
worker:  
rpc:  
grpcPort: 7239  
membershipPort: 6939  
internal-frontend:  
rpc:  
grpcPort: 7236  
membershipPort: 6936

---

<div class="post-metadata">

**Author:** ![antonio.perez](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/antonio.perez/32/2417_2.png) [@antonio.perez](https://community.temporal.io/u/antonio.perez)\
**Post date:** [September 3, 2025, 5:24pm UTC](https://community.temporal.io/t/panic-when-deploying-self-hosted-temporal-server/18286/2 "2025-09-03T17:24:25Z")

</div>

Hi

I think the clusterMetadata section is missing.

You can use one if [these](https://github.com/temporalio/temporal/tree/main/config) files as a reference

---

<div class="post-metadata">

**Author:** ![hanetz](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/hanetz/32/7693_2.png) [@hanetz](https://community.temporal.io/u/hanetz)\
**Post date:** [September 3, 2025, 9:04pm UTC](https://community.temporal.io/t/panic-when-deploying-self-hosted-temporal-server/18286/3 "2025-09-03T21:04:11Z")

</div>

Thanks for the suggestion.

I tried that, I also try to manually populated the cluster\_metadata db table with the same values as json - unfortunately no luck and the error persists.
