Not able to deploy inji-certify via docker-compose or helm

Hi MOSIP team,

I attempted to deploy Injistack (comprising injiweb, injicertify, and injiverify) independently of MOSIP using Docker Compose on my local system. I used the v0.11.0 tag of inji-certify to execute the docker-compose setup. However, I encountered the following error and noticed that the inji-verify service is missing from the Docker Compose configuration.

Could you please assist me in resolving this issue?

Certify error

certify_1         | {"@timestamp":"2025-07-03T05:47:24.128Z","@version":"1","message":"Hibernate is in classpath; If applicable, HQL parser will be used.","logger_name":"org.springframework.data.jpa.repository.query.QueryEnhancerFactory","thread_name":"main","level":"INFO","level_value":20000,"appName":"certify"}
certify_1         | {"@timestamp":"2025-07-03T05:47:24.884Z","@version":"1","message":"Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'certifyIssuanceServiceImpl': Unsatisfied dependency expressed through field 'dataProviderPlugin': No qualifying bean of type 'io.mosip.certify.api.spi.DataProviderPlugin' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}","logger_name":"org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext","thread_name":"main","level":"WARN","level_value":30000,"appName":"certify"}
certify_1         | {"@timestamp":"2025-07-03T05:47:24.885Z","@version":"1","message":"Closing JPA EntityManagerFactory for persistence unit 'default'","logger_name":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","thread_name":"main","level":"INFO","level_value":20000,"appName":"certify"}
certify_1         | {"@timestamp":"2025-07-03T05:47:24.887Z","@version":"1","message":"HikariPool-1 - Shutdown initiated...","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"main","level":"INFO","level_value":20000,"appName":"certify"}
certify_1         | {"@timestamp":"2025-07-03T05:47:24.891Z","@version":"1","message":"HikariPool-1 - Shutdown completed.","logger_name":"com.zaxxer.hikari.HikariDataSource","thread_name":"main","level":"INFO","level_value":20000,"appName":"certify"}
certify_1         | {"@timestamp":"2025-07-03T05:47:24.893Z","@version":"1","message":"Stopping service [Tomcat]","logger_name":"org.apache.catalina.core.StandardService","thread_name":"main","level":"INFO","level_value":20000,"appName":"certify"}
certify_1         | {"@timestamp":"2025-07-03T05:47:24.917Z","@version":"1","message":"\n\nError starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.","logger_name":"org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLogger","thread_name":"main","level":"INFO","level_value":20000,"appName":"certify"}
certify_1         | {"@timestamp":"2025-07-03T05:47:24.945Z","@version":"1","message":"\n\n***************************\nAPPLICATION FAILED TO START\n***************************\n\nDescription:\n\nField dataProviderPlugin in io.mosip.certify.services.CertifyIssuanceServiceImpl required a bean of type 'io.mosip.certify.api.spi.DataProviderPlugin' that could not be found.\n\nThe injection point has the following annotations:\n\t- @org.springframework.beans.factory.annotation.Autowired(required=true)\n\n\nAction:\n\nConsider defining a bean of type 'io.mosip.certify.api.spi.DataProviderPlugin' in your configuration.\n","logger_name":"org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter","thread_name":"main","level":"ERROR","level_value":40000,"appName":"certify"}
docker-compose-injistack_certify_1 exited with code 1

Mimoto error:

Mimoto-Service    | 2025-07-03T05:47:28.071Z  INFO 1 --- [mimoto] [lTaskScheduler1] [686619707b6e44191f763925f59fa8fb-1f763925f59fa8fb] i.m.k.a.d.c.RestTemplateInterceptor      : Injected load balancer : org.springframework.cloud.loadbalancer.blocking.client.BlockingLoadBalancerClient@2d3b0978 
Mimoto-Service    | 2025-07-03T05:47:28.092Z  WARN 1 --- [mimoto] [lTaskScheduler1] [686619707b6e44191f763925f59fa8fb-1f763925f59fa8fb] o.s.c.l.core.RoundRobinLoadBalancer      : No servers available for service: websub.websub
Mimoto-Service    | 2025-07-03T05:47:28.124Z ERROR 1 --- [mimoto] [lTaskScheduler1] [                                                 ] o.s.s.s.TaskUtils$LoggingErrorHandler    : Unexpected error occurred in scheduled task
Mimoto-Service    | 
Mimoto-Service    | org.springframework.web.client.ResourceAccessException: I/O error on POST request for "http://websub.websub/hub/": websub.websub
Mimoto-Service    | 	at org.springframework.web.client.RestTemplate.createResourceAccessException(RestTemplate.java:915) ~[spring-web-6.1.4.jar!/:6.1.4]
Mimoto-Service    | 	at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:895) ~[spring-web-6.1.4.jar!/:6.1.4]
Mimoto-Service    | 	at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:790) ~[spring-web-6.1.4.jar!/:6.1.4]
Mimoto-Service    | 	at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:672) ~[spring-web-6.1.4.jar!/:6.1.4]
Mimoto-Service    | 	at io.mosip.kernel.websub.api.client.SubscriberClientImpl.subscribe(SubscriberClientImpl.java:92) ~[kernel-websubclient-api-1.3.0-beta.1.jar!/:na]
Mimoto-Service    | 	at io.mosip.kernel.websub.api.client.SubscriberClientImpl.subscribe(SubscriberClientImpl.java:50) ~[kernel-websubclient-api-1.3.0-beta.1.jar!/:na]
Mimoto-Service    | 	at io.mosip.mimoto.util.WebSubSubscriptionHelper.subscribeEvent(WebSubSubscriptionHelper.java:74) ~[!/:0.15.0]
Mimoto-Service    | 	at io.mosip.mimoto.util.WebSubSubscriptionHelper.initSubscriptions(WebSubSubscriptionHelper.java:49) ~[!/:0.15.0]
Mimoto-Service    | 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source) ~[na:na]
Mimoto-Service    | 	at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[na:na]
Mimoto-Service    | 	at org.springframework.scheduling.support.ScheduledMethodRunnable.runInternal(ScheduledMethodRunnable.java:130) ~[spring-context-6.1.4.jar!/:6.1.4]
Mimoto-Service    | 	at org.springframework.scheduling.support.ScheduledMethodRunnable.lambda$run$2(ScheduledMethodRunnable.java:124) ~[spring-context-6.1.4.jar!/:6.1.4]
Mimoto-Service    | 	at io.micrometer.observation.Observation.observe(Observation.java:499) ~[micrometer-observation-1.12.3.jar!/:1.12.3]
Mimoto-Service    | 	at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:124) ~[spring-context-6.1.4.jar!/:6.1.4]
Mimoto-Service    | 	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) ~[spring-context-6.1.4.jar!/:6.1.4]
Mimoto-Service    | 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[na:na]
Mimoto-Service    | 	at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source) ~[na:na]
Mimoto-Service    | 	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) ~[na:na]
Mimoto-Service    | 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:na]
Mimoto-Service    | 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:na]
Mimoto-Service    | 	at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]
Mimoto-Service    | Caused by: java.net.UnknownHostException: websub.websub
Mimoto-Service    | 	at java.base/sun.nio.ch.NioSocketImpl.connect(Unknown Source) ~[na:na]
Mimoto-Service    | 	at java.base/java.net.Socket.connect(Unknown Source) ~[na:na]
Mimoto-Service    | 	at java.base/java.net.Socket.connect(Unknown Source) ~[na:na]
Mimoto-Service    | 	at java.base/sun.net.NetworkClient.doConnect(Unknown Source) ~[na:na]
Mimoto-Service    | 	at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source) ~[na:na]
Mimoto-Service    | 	at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source) ~[na:na]
Mimoto-Service    | 	at java.base/sun.net.www.http.HttpClient.<init>(Unknown Source) ~[na:na]
Mimoto-Service    | 	at java.base/sun.net.www.http.HttpClient.New(Unknown Source) ~[na:na]
Mimoto-Service    | 	at java.base/sun.net.www.http.HttpClient.New(Unknown Source) ~[na:na]
Mimoto-Service    | 	at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source) ~[na:na]
Mimoto-Service    | 	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source) ~[na:na]
Mimoto-Service    | 	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) ~[na:na]
Mimoto-Service    | 	at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) ~[na:na]
Mimoto-Service    | 	at org.springframework.http.client.SimpleClientHttpRequest.executeInternal(SimpleClientHttpRequest.java:79) ~[spring-web-6.1.4.jar!/:6.1.4]
Mimoto-Service    | 	at org.springframework.http.client.AbstractStreamingClientHttpRequest.executeInternal(AbstractStreamingClientHttpRequest.java:70) ~[spring-web-6.1.4.jar!/:6.1.4]
Mimoto-Service    | 	at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:66) ~[spring-web-6.1.4.jar!/:6.1.4]
Mimoto-Service    | 	at org.springframework.http.client.InterceptingClientHttpRequest$InterceptingRequestExecution.execute(InterceptingClientHttpRequest.java:112) ~[spring-web-6.1.4.jar!/:6.1.4]
Mimoto-Service    | 	at io.mosip.kernel.auth.defaultadapter.config.RestTemplateInterceptor.intercept(RestTemplateInterceptor.java:54) ~[kernel-auth-adapter-1.3.0-beta.1.jar!/:na]
Mimoto-Service    | 	at org.springframework.http.client.InterceptingClientHttpRequest$InterceptingRequestExecution.execute(InterceptingClientHttpRequest.java:88) ~[spring-web-6.1.4.jar!/:6.1.4]
Mimoto-Service    | 	at org.springframework.http.client.InterceptingClientHttpRequest.executeInternal(InterceptingClientHttpRequest.java:72) ~[spring-web-6.1.4.jar!/:6.1.4]
Mimoto-Service    | 	at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48) ~[spring-web-6.1.4.jar!/:6.1.4]
Mimoto-Service    | 	at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:66) ~[spring-web-6.1.4.jar!/:6.1.4]
Mimoto-Service    | 	at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:889) ~[spring-web-6.1.4.jar!/:6.1.4]
Mimoto-Service    | 	... 19 common frames omitted
Mimoto-Service    | 
database_1        | 2025-07-03 05:52:10.535 UTC [63] LOG:  checkpoint starting: time
database_1        | 2025-07-03 05:52:15.766 UTC [63] LOG:  checkpoint complete: wrote 55 buffers (0.3%); 0 WAL file(s) added, 0 removed, 0 recycled; write=5.218 s, sync=0.006 s, total=5.231 s; sync files=17, longest=0.003 s, average=0.001 s; distance=277 kB, estimate=277 kB; lsn=0/196BC80, redo lsn=0/196BC28
Mimoto-Service    | 2025-07-03T05:52:21.550Z  INFO 1 --- [mimoto] [TaskScheduler-1] [                                                 ] i.m.k.a.d.helper.TokenHelper             : Requesting for new Token for the provided OIDC Service(WebClient): https://iam.collab.mosip.net//auth/realms/
Mimoto-Service    | 2025-07-03T05:52:21.553Z  WARN 1 --- [mimoto] [TaskScheduler-1] [                                                 ] o.s.c.l.core.RoundRobinLoadBalancer      : No servers available for service: iam.collab.mosip.net
Mimoto-Service    | 2025-07-03T05:52:21.553Z  WARN 1 --- [mimoto] [TaskScheduler-1] [                                                 ] eactorLoadBalancerExchangeFilterFunction : LoadBalancer does not contain an instance for the service iam.collab.mosip.net
Mimoto-Service    | 2025-07-03T05:52:21.554Z ERROR 1 --- [mimoto] [TaskScheduler-1] [                                                 ] i.m.k.a.d.helper.TokenHelper             : Error connecting to OIDC service (WebClient) Problem in connecting to auth service or UNKNOWN Error.

Hi @syed.salman ,

Thank you for reaching out to us. Let us check on the issue and revert back to you as soon as possible

Regards,
Varaniya S
on behalf of Team MOSIP

Hi @syed.salman ,
We successfully downloaded the Verifiable Credential (VC) using the 0.11.x branch of InjiCertify with Docker Compose. We recommend following the steps outlined in the README.md file. Please try it on your end and let us know if you encounter any issues.

Regards,
Likhitha R L
on behalf of MOSIP Team

Hi @syed.salman,
Inji-verify service is missing from docker compose- Inji Verify is an independent module which has no link with any other modules like Certify or Wallet(Mobile/Web). So we can use any env, any wallet to get the VC and verify it through Inji verify. That’s the reason it’s not part of stack docker compose.
Why we have wallet and certify in Inji Stack deployment docker-compose- Certify is being used to add new use-cases. After customising certify configuration and plugins, we have two ways to verify whether our use-case is working fine or not. One is postman collection of Certify and another one is Wallet.
Error in certify pod- It looks like not able to fetch DataProviderPlugin. I hope you have followed readme steps to pull plugin and configure it.
Error in mimoto pod- It is available as error in logs but pod doesn’t get crashed. This error comes while connecting mimoto with websub. But in local setup or Inji without Mosip platform doesn’t have websub and it’s not even used. So we can ignore this error and continue using the wallet and mimoto.

Please let us know if you still face any issue.

Thanks & Regards,
Swati Goel
on behalf of Team MOSIP