I have exported the metadata of a program from one DHIS2 Instance. i want to import it into the other instance. When i do “dry run”, it shows no error. But when i do the actual import, i get the below error:
TypeError: Cannot read properties of undefined (reading 'imported')
TypeError: Cannot read properties of undefined (reading 'imported')
at gt (https://ohsp.health.gov.mw/dhis-web-import-export/static/js/app.721376d2.chunk.js:1:516997)
at Gi (https://ohsp.health.gov.mw/dhis-web-import-export/static/js/138.7078e649.chunk.js:2:626080)
at _s (https://ohsp.health.gov.mw/dhis-web-import-export/static/js/138.7078e649.chunk.js:2:672310)
at vl (https://ohsp.health.gov.mw/dhis-web-import-export/static/js/138.7078e649.chunk.js:2:665037)
at ml (https://ohsp.health.gov.mw/dhis-web-import-export/static/js/138.7078e649.chunk.js:2:664962)
at sl (https://ohsp.health.gov.mw/dhis-web-import-export/static/js/138.7078e649.chunk.js:2:661971)
at https://ohsp.health.gov.mw/dhis-web-import-export/static/js/138.7078e649.chunk.js:2:613342
at t.unstable_runWithPriority (https://ohsp.health.gov.mw/dhis-web-import-export/static/js/138.7078e649.chunk.js:2:688741)
at Va (https://ohsp.health.gov.mw/dhis-web-import-export/static/js/138.7078e649.chunk.js:2:613051)
at Ka (https://ohsp.health.gov.mw/dhis-web-import-export/static/js/138.7078e649.chunk.js:2:613287)
in gt
in div
in It
in div
in Et
in div
in Gn
in div
in qt
in vi
in n
in n
in Gl
in ql
in main
in div
in n
in n
in Unknown
in Suspense
in be
in div
in div
in _e
in qe
in C
in de
in je
in le
in DHIS2RuntimeProvider
in Ne
in be
in Le
in i
Dear @emmanuellmhango
This is unfortunately a quite common problem in later versions of DHIS2. What is happening is that the back-end server is throwing some error (very likely a constraint violation) which the front-end client does not handle very well. The “dry run” functionality does not catch all potential metadata issues, and these only may become apparent when you actually try and write the metadata to the database.
So, in order to determine what is going on, you are going to need to open up the developer tools of your browser, and try and find the actual error when you upload the metadata to the server. That should give you a better clue about what is going on. The other alternative (if you have access to the backend server) is to monitor the logs for the error. Likely, it is related to a constraint violation.
Hello, I hope its not too late to reply to this thread,
I am experiencing the same error when trying to move a tracker program from one instance to another,
Note that both instances are running 2.40.3 with the target instance running 2.40.3.2.
After checking the catalina logs, the error i am getting is listed below:
Updating 3 object(s) of type Option (DefaultObjectBundleService.java [taskScheduler-15])
INFO 2024-06-28T03:46:46,508 () Updating 3 object(s) of type Option (NotificationLoggerUtil.java [taskScheduler-15])
ERROR 2024-06-28T03:46:46,524 java.lang.NullPointerException: Cannot invoke “org.hisp.dhis.option.Option.getSortOrder()” because “thisOption” is null
at org.hisp.dhis.option.OptionSet.addOption(OptionSet.java:90)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
however after sometime the import gives this response
I found out the error. it seems when we are exporting it includes empty optionsets which gives out errors when importing.
so going to the exported metadata and removing these empty optionsets
Am also facing an import error when importing org unit metadata between two similar versions of DHIS2
Log
INFO 2024-07-10T15:45:31,246 Import done: 00:00:00.475 (Clock.java [http-nio-8080-exec-14]) IDwxo1kfC5DEoF3iinM3ucq79dbLhK/mYWOJWWrHBGR7w=
ERROR 2024-07-10T15:45:31,920 java.lang.IllegalStateException: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: org.hisp.dhis.organisationunit.OrganisationUnit
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:151)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:188)
at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1411)
at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1394)
at org.hisp.dhis.dbms.HibernateDbmsManager.clearSession(HibernateDbmsManager.java:360)
at org.hisp.dhis.dxf2.metadata.objectbundle.DefaultObjectBundleService.commit(DefaultObjectBundleService.java:146)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:241)
at jdk.proxy3/jdk.proxy3.$Proxy328.commit(Unknown Source)
at org.hisp.dhis.dxf2.metadata.DefaultMetadataImportService.importMetadata(DefaultMetadataImportService.java:125)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:241)
at jdk.proxy3/jdk.proxy3.$Proxy330.importMetadata(Unknown Source)
at org.hisp.dhis.webapi.controller.metadata.MetadataAsyncImporter.call(MetadataAsyncImporter.java:73)
at org.hisp.dhis.security.SecurityContextRunnable.run(SecurityContextRunnable.java:53)
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: org.hisp.dhis.organisationunit.OrganisationUnit
at org.hibernate.engine.internal.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:347)
at org.hibernate.type.EntityType.getIdentifier(EntityType.java:508)
at org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:370)
at org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:381)
at org.hibernate.type.TypeHelper.findDirty(TypeHelper.java:330)
at org.hibernate.persister.entity.AbstractEntityPersister.findDirty(AbstractEntityPersister.java:4768)
at org.hibernate.event.internal.DefaultFlushEntityEventListener.dirtyCheck(DefaultFlushEntityEventListener.java:586)
at org.hibernate.event.internal.DefaultFlushEntityEventListener.isUpdateNecessary(DefaultFlushEntityEventListener.java:249)
at org.hibernate.event.internal.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:174)
at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:107)
at org.hibernate.event.internal.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:229)
at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:93)
at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39)
at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:107)
at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1407)
… 39 more
(MetadataAsyncImporter.java [taskScheduler-23])
ERROR 2024-07-10T15:45:31,921 Process failed: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: org.hisp.dhis.organisationunit.OrganisationUnit (NotificationLoggerUtil.java [taskScheduler-23])
Hi @omunyao
How are you importing the metadata? Which app are you using and which version of DHIS2?
Please try to clear system cache first from Data Administration app, Maintenance then try again.
In the log it only shows that there’s an issue with the OUs metadata, does it mention other metadata? Could you double check that OUs are all configured well and that there’s no OU cache or temporary deletions?