Channels / #fineract / 2026 / 04 / 22

#fineract 2026-04-22

Wed 10:47Edson
hello team, I have pushed a PR on fineract repo, but a Fineract Signed Commits Check workflow run has failed how do you guys set it up, thank you
Wed 16:01Kaushal Shriyan
Subject: Issue with Self-Service Plugin Tables in Fineract 1.15

I am using the self-service plugin for user onboarding:
https://github.com/openMF/selfservice-plugin
I followed the below steps:
```#git clone https://github.com/apache/fineract.git
#cd /opt/fineract
# git branch
  • develop
#./gradlew clean build -x test -x rat

# Verify build
#ls /opt/fineract/fineract-provider/build/libs/
fineract-provider-1.15.0-SNAPSHOT.jar```
Then, I built the self-service plugin:
```#git clone https://github.com/openMF/selfservice-plugin.git
#cd selfservice-plugin
#./mvnw -Dmaven.test.skip=true
#cp /opt/selfservice-plugin/target/selfservice-plugin-1.15.0-SNAPSHOT.jar /opt/fineract/libs/```
My systemd configuration is as follows:
```[Unit]
Description= CBS Application Service
After=network.target
Wants=network-online.target

[Service]
WorkingDirectory=/opt/fineract/fineract-provider
ExecStart=/usr/bin/java -Duser.timezone=UTC \
-Dloader.path=/opt/fineract/libs/ \
-Dspring.config.additional-location=file:/opt/fineract/override.properties \
-jar build/libs/fineract-provider-1.15.0-SNAPSHOT.jar
SuccessExitStatus=143
Restart=on-failure
RestartSec=10
StandardOutput=append:/var/log/fineract/fineract.log
StandardError=append:/var/log/fineract/fineract-error.log

[Install]
WantedBy=multi-user.target```
After startup, I can see the following self-service tables:
```SHOW TABLES LIKE '%m_selfservice%';

m_selfservice_beneficiaries_tpt
m_selfservice_user_client_mapping```
However, the following tables are missing:
  • `m_selfservice_user`
  • `m_selfservice_registration`
I have attached the self-service plugin logs for reference.
Could you please guide me on why these tables are not being created and how to resolve this issue?
reply Wed 16:28Krishna Mewara (DeathGun44)
Hi, i don't think these are plugin issues, tables are actually there ,they just have different names than what you're expecting! Try this `SHOW TABLES LIKE '%appselfservice%';` also `SHOW TABLES LIKE 'request_audit_table';`
reply Wed 16:40Kaushal Shriyan
```Database changed
MariaDB [fineract_default]> SHOW TABLES LIKE '%appselfservice%';
+-----------------------------------------------+
| Tables_in_fineract_default (%appselfservice%) |
+-----------------------------------------------+
| m_appselfservice_user |
| m_appselfservice_user_role |
+-----------------------------------------------+
2 rows in set (0.001 sec)

MariaDB [fineract_default]> SHOW TABLES LIKE 'request_audit_table';
+--------------------------------------------------+
| Tables_in_fineract_default (request_audit_table) |
+--------------------------------------------------+
| request_audit_table |
+--------------------------------------------------+
1 row in set (0.001 sec)

MariaDB [fineract_default]>```
👍 1
reply Wed 17:01Kaushal Shriyan
so what all tables are created by the self service plugins?

  • `m_appselfservice_user`
  • `m_appselfservice_user_role`
  • `m_selfservice_user_client_mapping`
Please comment
reply Wed 17:02Kaushal Shriyan
```MariaDB [fineract_default]> show tables like '%selfservice%';
+--------------------------------------------+
| Tables_in_fineract_default (%selfservice%) |
+--------------------------------------------+
| m_appselfservice_user |
| m_appselfservice_user_role |
| m_selfservice_beneficiaries_tpt |
| m_selfservice_user_client_mapping |
+--------------------------------------------+
4 rows in set (0.001 sec)

MariaDB [fineract_default]>```
reply Wed 17:04Krishna Mewara (DeathGun44)
yes, all 4 tables in your query are created by the self-service plugin
reply Wed 17:05Kaushal Shriyan
Do you have sample API calls to create a self service users? map savings account, deposit money and withdraw money , beneficiaries etc..
reply Wed 17:07Kaushal Shriyan
Thanks in advance
reply Thu 00:00Kaushal Shriyan
```2026-04-22 23:57:41.442 - WARN 11297 [ no-tenant] --- [nio-8080-exec-5] o.g.jersey.internal.inject.Providers : A provider org.apache.fineract.selfservice.account.api.SelfAccountTransferApiResource registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.apache.fineract.selfservice.account.api.SelfAccountTransferApiResource will be ignored.
2026-04-22 23:57:41.443 - WARN 11297 [ no-tenant] --- [nio-8080-exec-5] o.g.jersey.internal.inject.Providers : A provider org.apache.fineract.selfservice.account.api.SelfBeneficiariesTPTApiResource registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.apache.fineract.selfservice.account.api.SelfBeneficiariesTPTApiResource will be ignored.
2026-04-22 23:57:41.443 - WARN 11297 [ no-tenant] --- [nio-8080-exec-5] o.g.jersey.internal.inject.Providers : A provider org.apache.fineract.selfservice.client.api.SelfClientsApiResource registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.apache.fineract.selfservice.client.api.SelfClientsApiResource will be ignored.
2026-04-22 23:57:41.443 - WARN 11297 [ no-tenant] --- [nio-8080-exec-5] o.g.jersey.internal.inject.Providers : A provider org.apache.fineract.selfservice.loanaccount.api.SelfLoansApiResource registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.apache.fineract.selfservice.loanaccount.api.SelfLoansApiResource will be ignored.
2026-04-22 23:57:41.443 - WARN 11297 [ no-tenant] --- [nio-8080-exec-5] o.g.jersey.internal.inject.Providers : A provider org.apache.fineract.selfservice.products.api.SelfLoanProductsApiResource registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.apache.fineract.selfservice.products.api.SelfLoanProductsApiResource will be ignored.
2026-04-22 23:57:41.443 - WARN 11297 [ no-tenant] --- [nio-8080-exec-5] o.g.jersey.internal.inject.Providers : A provider org.apache.fineract.selfservice.products.api.SelfSavingsProductsApiResource registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.apache.fineract.selfservice.products.api.SelfSavingsProductsApiResource will be ignored.
2026-04-22 23:57:41.443 - WARN 11297 [ no-tenant] --- [nio-8080-exec-5] o.g.jersey.internal.inject.Providers : A provider org.apache.fineract.selfservice.products.api.SelfShareProductsApiResource registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.apache.fineract.selfservice.products.api.SelfShareProductsApiResource will be ignored.
2026-04-22 23:57:41.443 - WARN 11297 [ no-tenant] --- [nio-8080-exec-5] o.g.jersey.internal.inject.Providers : A provider org.apache.fineract.selfservice.registration.api.SelfServiceRegistrationApiResource registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.apache.fineract.selfservice.registration.api.SelfServiceRegistrationApiResource will be ignored.
2026-04-22 23:57:41.443 - WARN 11297 [ no-tenant] --- [nio-8080-exec-5] o.g.jersey.internal.inject.Providers : A provider org.apache.fineract.selfservice.runreport.SelfRunReportApiResource registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.apache.fineract.selfservice.runreport.SelfRunReportApiResource will be ignored.
2026-04-22 23:57:41.443 - WARN 11297 [ no-tenant] --- [nio-8080-exec-5] o.g.jersey.internal.inject.Providers : A provider org.apache.fineract.selfservice.savings.api.SelfSavingsAccountApiResource registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.apache.fineract.selfservice.savings.api.SelfSavingsAccountApiResource will be ignored.
2026-04-22 23:57:41.443 - WARN 11297 [ no-tenant] --- [nio-8080-exec-5] o.g.jersey.internal.inject.Providers : A provider org.apache.fineract.selfservice.security.api.SelfAuthenticationApiResource registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.apache.fineract.selfservice.security.api.SelfAuthenticationApiResource will be ignored.
2026-04-22 23:57:41.443 - WARN 11297 [ no-tenant] --- [nio-8080-exec-5] o.g.jersey.internal.inject.Providers : A provider org.apache.fineract.selfservice.security.api.SelfForgotPasswordApiResource registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.apache.fineract.selfservice.security.api.SelfForgotPasswordApiResource will be ignored.
2026-04-22 23:57:41.443 - WARN 11297 [ no-tenant] --- [nio-8080-exec-5] o.g.jersey.internal.inject.Providers : A provider org.apache.fineract.selfservice.security.api.SelfUserApiResource registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.apache.fineract.selfservice.security.api.SelfUserApiResource will be ignored.
2026-04-22 23:57:41.443 - WARN 11297 [ no-tenant] --- [nio-8080-exec-5] o.g.jersey.internal.inject.Providers : A provider org.apache.fineract.selfservice.shareaccounts.api.SelfShareAccountsApiResource registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.apache.fineract.selfservice.shareaccounts.api.SelfShareAccountsApiResource will be ignored.
2026-04-22 23:57:41.443 - WARN 11297 [ no-tenant] --- [nio-8080-exec-5] o.g.jersey.internal.inject.Providers : A provider org.apache.fineract.selfservice.spm.api.SelfScorecardApiResource$$SpringCGLIB$$0 registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.apache.fineract.selfservice.spm.api.SelfScorecardApiResource$$SpringCGLIB$$0 will be ignored.
2026-04-22 23:57:41.443 - WARN 11297 [ no-tenant] --- [nio-8080-exec-5] o.g.jersey.internal.inject.Providers : A provider org.apache.fineract.selfservice.spm.api.SelfSpmApiResource$$SpringCGLIB$$0 registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider org.apache.fineract.selfservice.spm.api.SelfSpmApiResource$$SpringCGLIB$$0 will be ignored.
2026-04-22 23:57:42.514 - WARN 11297 [ default] --- [nio-8080-exec-5] o.g.j.server.ServerRuntime$Responder : An exception mapping did not successfully produce and processed a response. Logging the exception propagated to the default exception mapper.
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "authenticationMode" is null
at org.apache.fineract.selfservice.registration.service.SelfServiceRegistrationWritePlatformServiceImpl.createRegistrationRequest(SelfServiceRegistrationWritePlatformServiceImpl.java:179)
at org.apache.fineract.selfservice.registration.service.SelfServiceRegistrationWritePlatformServiceImpl$$SpringCGLIB$$0.createRegistrationRequest(<generated>)
at org.apache.fineract.selfservice.registration.api.SelfServiceRegistrationApiResource.createSelfServiceRegistrationRequest(SelfServiceRegistrationApiResource.java:59)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:125)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83)
2026-04-22 23:57:42.535 -ERROR 11297 [ no-tenant] --- [nio-8080-exec-5] .a.c.c.C.[.[.[.[.a.f.i.c.j.JerseyConfig] : Servlet.service() for servlet [org.apache.fineract.infrastructure.core.jersey.JerseyConfig] in context with path [/fineract-provider] threw exception [java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "authenticationMode" is null] with root cause
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "authenticationMode" is null
at org.apache.fineract.selfservice.registration.service.SelfServiceRegistrationWritePlatformServiceImpl.createRegistrationRequest(SelfServiceRegistrationWritePlatformServiceImpl.java:179)
at org.apache.fineract.selfservice.registration.service.SelfServiceRegistrationWritePlatformServiceImpl$$SpringCGLIB$$0.createRegistrationRequest(<generated>)
at org.apache.fineract.selfservice.registration.api.SelfServiceRegistrationApiResource.createSelfServiceRegistrationRequest(SelfServiceRegistrationApiResource.java:59)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:125)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83)```
reply Thu 00:00Kaushal Shriyan
`cat /opt/fineract/override.properties`
# ===============================
# DATABASE CONFIG
# ===============================
spring.datasource.url=jdbc:mariadb://localhost:3306/fineract_tenants
spring.datasource.username=fineract
spring.datasource.password=fineract
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver

fineract.datasource.username=fineract
fineract.datasource.password=fineract

fineract.tenant.datasource.url=jdbc:mariadb://localhost:3306/fineract_default
fineract.tenant.datasource.username=fineract
fineract.tenant.datasource.password=fineract


# Fineract Tenant/Master Specific Overrides
fineract.tenant.username=fineract
fineract.tenant.password=fineract
fineract.tenant.master.username=fineract
fineract.tenant.master.password=fineract

# Force Hikari to use these
spring.datasource.hikari.username=fineract
spring.datasource.hikari.password=fineract

# Server Settings
server.port=8080
server.ssl.enabled=false

# ===============================
# CORE SETTINGS
# ===============================
fineract.node-id=1

# ===============================
# MODE
# ===============================
fineract.mode.batch-worker-enabled=false
fineract.mode.read-only-enabled=false

# ===============================
# JOB
# ===============================
fineract.job.loan-cob-enabled=false

# ===============================
# EVENTS
# ===============================
fineract.events.external.enabled=false
fineract.events.external.partition-size=1

# ===============================
# REMOTE JOB HANDLER
# ===============================
fineract.remote-job-message-handler.spring-events.enabled=false
fineract.remote-job-message-handler.jms.enabled=false

# ===============================
# JPA
# ===============================
fineract.jpa.statement-logging-enabled=false

# ===============================
# SAMPLING
# ===============================
fineract.sampling.enabled=false

# ===============================
# REPORT (FIXES CURRENT ERROR)
# ===============================
fineract.report.export.enabled=false

# ===============================
# S3 (disable)
# ===============================
fineract.s3.enabled=false

# ===============================
# LOGGING (optional)
# ===============================
logging.level.root=INFO

# ===== REPORT =====
fineract.report.enabled=true
fineract.report.export.enabled=false

# ===== S3 =====
fineract.s3.enabled=false
fineract.s3.bucket-name=dummy
fineract.s3.access-key=dummy
fineract.s3.secret-key=dummy
fineract.s3.region=us-east-1

logging.level.liquibase=DEBUG
logging.level.org.apache.fineract.selfservice=DEBUG

# ===============================

# SELF SERVICE (CLEAN CONFIG)

# ===============================
# Enable self-service plugin
fineract.self-service.enabled=true
fineract.self-service.registration.enabled=true

# Use only basic auth (required)
fineract.security.basicauth.enabled=true

# Disable OAuth (avoid conflicts)
fineract.security.oauth.enabled=false
fineract.selfservice.authentication-mode=USERNAME
reply Thu 16:42Edson
Thank you @Francisco Cuandon, I have now created the ticket and the PR is ready
reply Thu 20:47Francisco Cuandon
Hi you have to be comitter to can assign tickets to you.
reply Mon 08:21Edson
Can someone assign it to me?, someone may claim it yet the Pr is already up
reply Mon 18:22Francisco Cuandon
You cannot assign tickets to yourself until you become a committer. Please leave a comment stating that you are working on it but cannot assign it to yourself yet.
reply Tue 02:18Edson
okay thatnk you @Francisco Cuandon
reply Wed 00:33Edson
I have failed to login
```An error occurred in handling this OAuth request:
Invalid username or password supplied!```

reply Wed 04:09Aman-Mittal
You have to subscribe to devlist with private email by sending email.
✅ 1