"Unable to get the requested page for object type 'xxxxx' in context 'edit' associated with application 'desktop'" occurs in SAS® Visual Investigator


An issue might occur in SAS Visual Investigator on SAS Viya where you cannot open a specific object in Edit mode, while all other objects of the same entity open normally.

When you click the Edit button (pencil icon) to open the page in Edit mode, the following error message is displayed in a pop‑up window:

Unable to get the requested page for object type ‘xxxxx’ in context ‘edit’ associated with application ‘desktop’.

Here is an example of an object from the Investigation entity, which cannot be opened in Edit mode:

Unable to get the requested page for object type ‘INVESTIGATION’ in context ‘edit’ associated with application ‘desktop’.

If you capture a Network Trace or HTTP Archived (HAR) File using a browser developer tool, the HAR File indicates that the HTTP GET call (shown below) returns an HTTP 400 with error code 95765. Prior HTTP calls to POST /svi-datahub/documents/checkDocumentAccess to check for document access return HTTP 200, indicating that the user has the Read, Update, and Delete access.

Request URL: https://xxxx/SASVisualInvestigator/pages/INVESTIGATION/99999999999_INV?context=edit
Request Method: GET
Status Code: 400 Bad Request

Response
{{{}}
  "errorCode" : 95765,
  "message" : "Unable to get the requested page for object type \"INVESTIGATION\" in context \"edit\" associated with application \"desktop\".",
  "remediation" : "An error occurred. Check the log for details or contact your system administrator.",
  "links" : [ ],
  "version" : 2,
  "httpStatusCode" : 400
}

In addition, the Svi-datahub log for the time frame that the issue was reproduced contains an No enum constant com.sas.fcs.datahub.lock.ObjectLockType.Document error message.

Here is an example:

{"version":1,"timeStamp":"2026-06-01T12:13:01.962Z","level":"error","source":"sas-svi-datahub","message":"No enum constant com.sas.fcs.datahub.lock.ObjectLockType.Document\norg.springframework.dao.InvalidDataAccessApiUsageException: No enum constant com.sas.fcs.datahub.lock.ObjectLockType.Document\n\tat org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:371)\n\tat org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:246)\n\tat org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:560)\n\tat org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)\n\tat org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:343)\n\tat org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:160)\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n\tat org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:165)\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)\n\tat org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:223)\n\tat jdk.proxy3/jdk.proxy3.$Proxy367.findById(Unknown Source)\n\tat com.sas.fcs.datahub.services.dataaccess.DefaultLockAccessService.findById(DefaultLockAccessService.java:54)\n\tat com.sas.fcs.datahub.services.data.DefaultLockService.lockDocument(DefaultLockService.java:76)\n\tat java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:580)\n\tat org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:360)\n\tat org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:724)\n\tat com.sas.fcs.datahub.services.data.DefaultLockService$$SpringCGLIB$$0.lockDocument(<generated>)\n\tat com.sas.fcs.datahub.services.page.PageService.getPageForObject_aroundBody2(PageService.java:151)\n\tat com.sas.fcs.datahub.services.page.PageService$AjcClosure3.run(PageService.java:1)\n\tat 
...and so on...

Cause

The failure stems from an issue during lock resolution in the DataHub service when attempting to open the object in Edit mode.

The underlying cause is that an invalid enum value "Document" (mixed‑case) is being read from the lock record, but the application expects the value "DOCUMENT" (all uppercase). The mismatch triggers a runtime exception, which ultimately results in the HTTP 400 response.

Solution

  1. Run the following query to see whether the lock_type value for the problematic object is defined as Document instead of "DOCUMENT".

    SELECT ol.object_type,
           ol.object_id,
           ol.locked_by,
           ol.locked_at,
           ol.lock_type
    FROM fdhdata.object_lock ol
    WHERE ol.object_type = '<object>'
      AND ol.object_id = '<object id>';

  2. If the lock_type value is set to Document (which is incorrect), and the lock is stale, you can delete the entry from fdhdata.object_lock table.

    DELETE FROM fdhdata.object_lock

    WHERE object_type = '<object>'
    AND object_id = '<object id>';

  3. Try opening the problematic object in Edit mode again and confirm that the page loads correctly.