Error with REST Datastore

Hi,
We use REST Datastore in our application with JMIX 2.5, however, we receive the following error: “io.jmix.restds.exception.InvalidFetchPlanException: Data store ‘mcistore’ supports only named fetch plans defined in fetch plans repository” when updating an entity on the client. The error is as follows:

2025-03-18T13:14:05.889+01:00 INFO 49312 — [nio-8083-exec-5] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet ‘dispatcherServlet’
2025-03-18T13:14:05.889+01:00 INFO 49312 — [nio-8083-exec-5] o.s.web.servlet.DispatcherServlet : Initializing Servlet ‘dispatcherServlet’
2025-03-18T13:14:05.891+01:00 INFO 49312 — [nio-8083-exec-5] o.s.web.servlet.DispatcherServlet : Completed initialization in 2 ms
2025-03-18T13:14:06.897+01:00 INFO 49312 — [nio-8083-exec-8] i.j.core.impl.FetchPlanRepositoryImpl : Initializing fetch plans
2025-03-18T13:14:06.982+01:00 INFO 49312 — [nio-8083-exec-8] eclipselink.logging.all : EclipseLink, version: Eclipse Persistence Services - 4.0.2-3-jmix.v202404051618
2025-03-18T13:14:07.248+01:00 DEBUG 49312 — [nio-8083-exec-8] io.jmix.core.AccessLogger : Denied access to [view: Empleat.list] for user [anonymous] by io.jmix.securityflowui.constraint.UiShowViewConstraint
2025-03-18T13:14:07.285+01:00 WARN 49312 — [nio-8083-exec-5] c.v.f.s.c.UidlRequestHandler : Invalid security key received from 0:0:0:0:0:0:0:1
2025-03-18T13:14:12.066+01:00 DEBUG 49312 — [nio-8083-exec-5] j.r.i.RestClientCredentialsAuthenticator : Request: POST http://localhost:8085/oauth2/token
2025-03-18T13:14:12.174+01:00 DEBUG 49312 — [nio-8083-exec-5] j.r.i.RestClientCredentialsAuthenticator : Response: 200 OK
2025-03-18T13:14:12.177+01:00 DEBUG 49312 — [nio-8083-exec-5] io.jmix.restds.impl.RestInvoker : Request: GET http://localhost:8085/rest/entities/payroll_Empleat?limit=50&offset=0
2025-03-18T13:14:12.200+01:00 DEBUG 49312 — [nio-8083-exec-5] io.jmix.restds.impl.RestInvoker : Response: 200 OK
2025-03-18T13:14:14.575+01:00 DEBUG 49312 — [nio-8083-exec-9] io.jmix.restds.impl.RestInvoker : Request: GET http://localhost:8085/rest/entities/payroll_Empleat/201
2025-03-18T13:14:14.589+01:00 DEBUG 49312 — [nio-8083-exec-9] io.jmix.restds.impl.RestInvoker : Response: 200 OK
2025-03-18T13:14:19.959+01:00 DEBUG 49312 — [nio-8083-exec-6] io.jmix.restds.impl.RestInvoker : Request: PUT http://localhost:8085/rest/entities/payroll_Empleat/201?responseFetchPlan=_base
2025-03-18T13:14:19.992+01:00 DEBUG 49312 — [nio-8083-exec-6] io.jmix.restds.impl.RestInvoker : Response: 200 OK
2025-03-18T13:14:19.995+01:00 DEBUG 49312 — [nio-8083-exec-6] io.jmix.restds.impl.RestInvoker : Request: GET http://localhost:8085/rest/capabilities
2025-03-18T13:14:20.002+01:00 DEBUG 49312 — [nio-8083-exec-6] io.jmix.restds.impl.RestInvoker : Response: 200 OK
2025-03-18T13:14:20.004+01:00 ERROR 49312 — [nio-8083-exec-6] i.j.f.e.DefaultUiExceptionHandler : Unhandled exception

io.jmix.restds.exception.InvalidFetchPlanException: Data store ‘mcistore’ supports only named fetch plans defined in fetch plans repository
at io.jmix.restds.impl.RestDataStore.getFetchPlanNameOrJson(RestDataStore.java:227) ~[jmix-restds-2.5.0.jar:na]
at io.jmix.restds.impl.RestDataStore.loadOne(RestDataStore.java:85) ~[jmix-restds-2.5.0.jar:na]

Hi,

Most probably you have migrated your project from a previous Jmix version, and Studio has disabled the inline fetch plans in REST API. This is intended and mentioned in the What’s New: Fetch Plans in REST API and REST DataStore

You can disable inline fetch plans for the generic REST in your application using the jmix.rest.inline-fetch-plan-enabled application property. When you use Studio to upgrade an existing project to Jmix 2.5, it sets this property to false automatically to prevent accidental data leaks.

So if you want inline fetch plans, you need to remove this property or set it to true.

Regards,
Konstantin

Hi Konstantin,
You got it !. We’ve migrated our project from previous Jmix version, now we’ve delete all references to jmix.rest.inline-fetch-plan-enable property and all work fine !
Thanks,