15 hours ago
at
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.1.11.jar!/:6.1.11]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1806) ~[spring-beans-6.1.11.jar!/:6.1.11]
at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:276) ~[hibernate-core-6.5.2.Final.jar!/:6.5.2.Final]
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:171) ~[hibernate-core-6.5.2.Final.jar!/:6.5.2.Final]
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:75) ~[spring-orm-6.1.11.jar!/:6.1.11]Caused by: org.hibernate.HibernateException: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided)
at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:191) ~[hibernate-core-6.5.2.Final.jar!/:6.5.2.Final]
at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:87) ~[hibernate-core-6.5.2.Final.jar!/:6.5.2.Final]
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) ~[spring-orm-6.1.11.jar!/:6.1.11]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) ~[spring-orm-6.1.11.jar!/:6.1.11]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1853) ~[spring-beans-6.1.11.jar!/:6.1.11]
... 92 common frames omitted
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:362) ~[hibernate-core-6.5.2.Final.jar!/:6.5.2.Final]
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:77) ~[hibernate-core-6.5.2.Final.jar!/:6.5.2.Final]
... 107 common frames omittedAttachments
2 Replies
15 hours ago
This thread has been opened as a bounty so the community can help solve it.
Status changed to Open Railway • about 15 hours ago
14 hours ago
Hey! I took a look at your logs. Your app can't open a connection to Postgres. The "Unable to determine Dialect" line and the NullPointerException … sqlExceptionHelper() is null are a known Hibernate/Spring issue (spring-framework #33540) that hides the real connection error (so the message's suggestion to set hibernate.dialect won't fix it).
Here's what you should do:
- On your backend service, set (swap Postgres for your DB service name):
SPRING_DATASOURCE_URL=jdbc:postgresql://${{Postgres.PGHOST}}:${{Postgres.PGPORT}}/${{Postgres.PGDATABASE}}
SPRING_DATASOURCE_USERNAME=${{Postgres.PGUSER}}
SPRING_DATASOURCE_PASSWORD=${{Postgres.PGPASSWORD}}
-
Do NOT set
spring.datasource.urltoDATABASE_URL(that's postgresql://…, not a valid JDBC URL). JDBC needs the jdbc:postgresql:// form with username/password separate. -
Confirm each
${{Postgres.*}}reference resolves to a real value (a wrong service name resolves to empty and gives this same error). -
Redeploy. If it still fails, let me know. You may want to post your
SPRING_DATASOURCE_URL(make sure to redact the password and any other sensitive data).
Also, just a heads up for next time! A sentence describing what you tried and how you're configuring the DB would help a lot; a raw stack trace with no context makes people guess.
3 hours ago
The current failure shown in the backend logs is not a custom-domain/DNS issue. The Spring Boot service is crashing during startup because Hibernate/JPA cannot connect to the database and therefore cannot determine the SQL dialect.
The key error is:
Unable to determine Dialect without JDBC metadata
That usually means the production environment is missing or has an invalid datasource configuration. In Railway, the backend service needs valid database variables such as:
SPRING_DATASOURCE_URL=jdbc:postgresql://HOST:PORT/DATABASE
SPRING_DATASOURCE_USERNAME=USER
SPRING_DATASOURCE_PASSWORD=PASSWORD
SPRING_JPA_DATABASE_PLATFORM=org.hibernate.dialect.PostgreSQLDialectIf Railway PostgreSQL variables are available, they can be mapped like this:
SPRING_DATASOURCE_URL=jdbc:postgresql://${PGHOST}:${PGPORT}/${PGDATABASE}
SPRING_DATASOURCE_USERNAME=${PGUSER}
SPRING_DATASOURCE_PASSWORD=${PGPASSWORD}After adding/fixing these variables, redeploy the backend. The expected successful log should show Hikari starting successfully, for example:
HikariPool-1 - Start completed
Right now the app fails before the repository layer initializes, which causes entityManagerFactory, userRepository, and then jwtAuthFilter to fail. So the immediate fix is to correct the production database connection variables, then retest the custom domain once the backend is healthy.