Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Join us in NYC Sept 4th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
igoralcantara
Partner Ambassador/MVP
Partner Ambassador/MVP

tDataPrepRun returning error DictionarySnapshot.getDQCategoryByName(String)" because "dictionarySnapshot" is null

Good day Qlik Community,

I am working with a job whose schema was provided by Qlik Learning. All other pieces work fine but this one.

Basically I have a Data Preparation job in Talend Cloud (Demographics) which uses only one semantic type: US State Code. The job runs perfectly in the cloud. However, when I call it in Studio, it fails.

I have all the modules installed on Studio and I do have the latest version of Studio installed. I have a Windows OS.

The error I get is this one:

Exception in component tDataprepRun_1 (Process_Data)

java.lang.NullPointerException: Cannot invoke "org.talend.dataquality.semantic.snapshot.DictionarySnapshot.getDQCategoryByName(String)" because "dictionarySnapshot" is null

I also attached a few images.

Any tip on how to fix this? 

igoralcantara_0-1752073495302.png

 

igoralcantara_1-1752073523942.png

 

igoralcantara_2-1752073585763.png

 



Check out my latest posts at datavoyagers.net
Labels (4)
34 Replies
marksouzacosta

Hi @Denis_Segard, thank you for answering.

I have tried that before. When I check Use dictionary and I don't change anything else and run the job, I got a different message - see attached.

In the Advanced settings, if I try to click the button to get the Dictionary version, I get the following error: 

marksouzacosta_0-1755524027312.png

An internal error occurred during: "Retrieve values".
MESSAGE
status: 520
Content-Type: application/json
Date: Mon, 18 Aug 2025 13:35:11 GMT

{"code":"ACTION_ERROR","description":"Action execution failed with: Cannot invoke \"javax.json.JsonNumber.longValue()\" because the return value of \"javax.json.JsonObject.getJsonNumber(String)\" is null"}^@

 

I have reduced the CSV file to two lines as you requested but I don't know how to execute this following statement. Can you please help me on that with more details?
"Could you execute the command below using the java used by Talend Studio and provide the output : 
java -XshowSettings:all"

 

 

A quick note:

We found this very same error on 4 different machines and 3 different Talend Tenants (different data sets and data preparation rules), including a VM provided in one of the Talend trainings. Multiple people faced the same problem during a presential official Talend lab training class about two weeks ago.

 

Regards,

Mark Costa

Read more at Data Voyagers - datavoyagers.net
Follow me on my LinkedIn | Know IPC Global at ipc-global.com

Denis_Segard
Support
Support

Hello Mark,
1. About the error 

An internal error occurred during: "Retrieve values".

could you generate a trace as described in the article below ? 
https://community.qlik.com/t5/Official-Support-Articles/How-to-collect-debug-traces-for-Talend-Studi...
How to collect debug traces for Talend Studio connection using HTTPS to Talend Cloud SSL, Git Server SSL, or similar


Configure the trace then, reproduce the error and check in  the "trace file" the HTTP requests related to the Dictionary that failed.

NOTE : the tokens used are stored in the trace file . Do not share the trace file 


2. about "java -XshowSettings:all" , this command should be executed in a "Command prompt" (cmd.exe) 

Kind regards
Denis

marksouzacosta

Thank you @Denis_Segard.

I'm sending all files to you in private.

Regards,

Mark Costa

Read more at Data Voyagers - datavoyagers.net
Follow me on my LinkedIn | Know IPC Global at ipc-global.com

Denis_Segard
Support
Support

Hello Mark,
Could you provide the permissions "granted" to the user "associated" to the token ?
You may go in the "Profile preferences" / "Personal access token" and click "Add token" . 
this will display the permissions "granted" to the user logged on .

Kind regards
Denis

marksouzacosta

Hi Denis,

My account is an admin account with full access. I have created a new Token - just in case - to show you all the permissions listed there and ran the job again using the new token. I used the new token but it still returns the same error. Following the permissions for this token:

marksouzacosta_0-1755617328742.png

 

Regards,

Mark Costa

Read more at Data Voyagers - datavoyagers.net
Follow me on my LinkedIn | Know IPC Global at ipc-global.com

chris_khalife
Support
Support

Hello,

R&D has confirmed that this issue will be fixed in the next Cloud release. To get updates about when Talend Cloud updates are pushed, please subscribe to this Community post below:
https://community.qlik.com/t5/Administering-and-Monitoring/Qlik-Talend-Cloud-monthly-release/m-p/252...

 

To confirm, the fix is specific to the error below:

java.lang.NullPointerException: Cannot invoke "org.talend.dataquality.semantic.snapshot.DictionarySnapshot.getDQCategoryByName(String)" because "dictionarySnapshot" is null

 

We will update this thread once the fix is pushed to Talend Cloud.

 

Best Regards,

Qlik Talend Support

marksouzacosta

Thank you @chris_khalife and @Denis_Segard.

Read more at Data Voyagers - datavoyagers.net
Follow me on my LinkedIn | Know IPC Global at ipc-global.com

Denis_Segard
Support
Support

Hello @marksouzacosta ,

The error may occur when no semantic types are published since the account was created.
That is to say this account was relying on default semantic type.

The most simple way to fix is create/update any semantic type. This will publish a new artifact with a version.
https://help.qlik.com/talend/en-US/data-inventory-user-guide/Cloud/adding-new-dictionary-based-seman...

Kind regards
Denis

marksouzacosta

Hi @Denis_Segard ,

I have tried this and have generated a different error.
I made two Semantic Types, one with Regular Expression and another one Dictionary:

marksouzacosta_0-1755892986862.png

 

Now in the Advanced settings Tab I'm able to check use dictionary and select a dictionary version, without any error:

marksouzacosta_1-1755893119433.png

 

Running the Job now return this error:

Starting job dataPrepDemo at 16:01 22/08/2025.
[statistics] connecting to socket on port 3343
[statistics] connected
[FATAL] 16:01:43 talend_dev.dataprepdemo_0_1.dataPrepDemo- tDataPrepRun_1 java.lang.reflect.InvocationTargetException
java.lang.IllegalStateException: java.lang.reflect.InvocationTargetException
	at org.talend.sdk.component.runtime.record.RecordConverters$MappingMeta.newInstance(RecordConverters.java:499) ~[component-runtime-impl-1.82.0.jar:?]
	at org.talend.sdk.component.runtime.record.RecordConverters$MappingMeta.newInstance(RecordConverters.java:476) ~[component-runtime-impl-1.82.0.jar:?]
	at org.talend.sdk.component.runtime.di.OutputsHandler.lambda$asOutputFactory$0(OutputsHandler.java:50) ~[component-runtime-di-1.82.0.jar:?]
	at org.talend.components.dataprep.processor.DataPrepProcessor.onElement(DataPrepProcessor.java:101) ~[dataprep-1.71.0.jar:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at org.talend.sdk.component.runtime.base.LifecycleImpl.doInvoke(LifecycleImpl.java:87) ~[component-runtime-impl-1.82.0.jar:?]
	at org.talend.sdk.component.runtime.output.ProcessorImpl.onNext(ProcessorImpl.java:303) ~[component-runtime-impl-1.82.0.jar:?]
	at org.talend.sdk.component.runtime.di.AutoChunkProcessor.onElement(AutoChunkProcessor.java:38) ~[component-runtime-di-1.82.0.jar:?]
	at talend_dev.dataprepdemo_0_1.dataPrepDemo.tFileInputDelimited_1Process(dataPrepDemo.java:3092) [classes/:?]
	at talend_dev.dataprepdemo_0_1.dataPrepDemo.runJobInTOS(dataPrepDemo.java:4184) [classes/:?]
	at talend_dev.dataprepdemo_0_1.dataPrepDemo.main(dataPrepDemo.java:3822) [classes/:?]
Caused by: java.lang.reflect.InvocationTargetException
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at org.talend.sdk.component.runtime.record.RecordConverters$MappingMeta.newInstance(RecordConverters.java:497) ~[component-runtime-impl-1.82.0.jar:?]
	... 13 more
Caused by: java.time.format.DateTimeParseException: Text '-1228158000000' could not be parsed at index 11
	at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2052) ~[?:?]
	at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1954) ~[?:?]
	at java.time.ZonedDateTime.parse(ZonedDateTime.java:600) ~[?:?]
	at java.time.ZonedDateTime.parse(ZonedDateTime.java:585) ~[?:?]
	at org.talend.sdk.component.runtime.record.MappingUtils.mapString(MappingUtils.java:196) ~[component-runtime-impl-1.82.0.jar:?]
	at org.talend.sdk.component.runtime.record.MappingUtils.coerce(MappingUtils.java:108) ~[component-runtime-impl-1.82.0.jar:?]
	at org.talend.sdk.component.runtime.di.record.DiRecordVisitor.setField(DiRecordVisitor.java:336) ~[component-runtime-di-1.82.0.jar:?]
	at org.talend.sdk.component.runtime.di.record.DiRecordVisitor.lambda$onString$26(DiRecordVisitor.java:418) ~[component-runtime-di-1.82.0.jar:?]
	at java.util.Optional.ifPresent(Optional.java:178) ~[?:?]
	at org.talend.sdk.component.runtime.di.record.DiRecordVisitor.onString(DiRecordVisitor.java:418) ~[component-runtime-di-1.82.0.jar:?]
	at org.talend.sdk.component.runtime.manager.service.RecordServiceImpl.lambda$visit$7(RecordServiceImpl.java:119) ~[component-runtime-manager-1.82.0.jar:?]
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?]
	at java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) ~[?:?]
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?]
	at org.talend.sdk.component.runtime.manager.service.RecordServiceImpl.visit(RecordServiceImpl.java:97) ~[component-runtime-manager-1.82.0.jar:?]
	at org.talend.sdk.component.runtime.di.record.DiRecordVisitor.visit(DiRecordVisitor.java:220) ~[component-runtime-di-1.82.0.jar:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at org.talend.sdk.component.runtime.record.RecordConverters$MappingMeta.newInstance(RecordConverters.java:497) ~[component-runtime-impl-1.82.0.jar:?]
	... 13 more
Exception in component tDataPrepRun_1 (dataPrepDemo)
java.lang.IllegalStateException: java.lang.reflect.InvocationTargetException
	at org.talend.sdk.component.runtime.record.RecordConverters$MappingMeta.newInstance(RecordConverters.java:499)
	at org.talend.sdk.component.runtime.record.RecordConverters$MappingMeta.newInstance(RecordConverters.java:476)
	at org.talend.sdk.component.runtime.di.OutputsHandler.lambda$asOutputFactory$0(OutputsHandler.java:50)
	at org.talend.components.dataprep.processor.DataPrepProcessor.onElement(DataPrepProcessor.java:101)
	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.talend.sdk.component.runtime.base.LifecycleImpl.doInvoke(LifecycleImpl.java:87)
	at org.talend.sdk.component.runtime.output.ProcessorImpl.onNext(ProcessorImpl.java:303)
	at org.talend.sdk.component.runtime.di.AutoChunkProcessor.onElement(AutoChunkProcessor.java:38)
	at talend_dev.dataprepdemo_0_1.dataPrepDemo.tFileInputDelimited_1Process(dataPrepDemo.java:3092)
	at talend_dev.dataprepdemo_0_1.dataPrepDemo.runJobInTOS(dataPrepDemo.java:4184)
	at talend_dev.dataprepdemo_0_1.dataPrepDemo.main(dataPrepDemo.java:3822)
Caused by: java.lang.reflect.InvocationTargetException
	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.talend.sdk.component.runtime.record.RecordConverters$MappingMeta.newInstance(RecordConverters.java:497)
	... 13 more
Caused by: java.time.format.DateTimeParseException: Text '-1228158000000' could not be parsed at index 11
	at java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2052)
	at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1954)
	at java.base/java.time.ZonedDateTime.parse(ZonedDateTime.java:600)
	at java.base/java.time.ZonedDateTime.parse(ZonedDateTime.java:585)
	at org.talend.sdk.component.runtime.record.MappingUtils.mapString(MappingUtils.java:196)
	at org.talend.sdk.component.runtime.record.MappingUtils.coerce(MappingUtils.java:108)
	at org.talend.sdk.component.runtime.di.record.DiRecordVisitor.setField(DiRecordVisitor.java:336)
	at org.talend.sdk.component.runtime.di.record.DiRecordVisitor.lambda$onString$26(DiRecordVisitor.java:418)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at org.talend.sdk.component.runtime.di.record.DiRecordVisitor.onString(DiRecordVisitor.java:418)
	at org.talend.sdk.component.runtime.manager.service.RecordServiceImpl.lambda$visit$7(RecordServiceImpl.java:119)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
	at org.talend.sdk.component.runtime.manager.service.RecordServiceImpl.visit(RecordServiceImpl.java:97)
	at org.talend.sdk.component.runtime.di.record.DiRecordVisitor.visit(DiRecordVisitor.java:220)
	... 18 more
[statistics] disconnected

Job dataPrepDemo ended at 16:01 22/08/2025. [Exit code  = 1]

 

Read more at Data Voyagers - datavoyagers.net
Follow me on my LinkedIn | Know IPC Global at ipc-global.com

Denis_Segard
Support
Support

Hello,

The cause os the exception is : 

Caused by: java.time.format.DateTimeParseException: Text '-1228158000000' could not be parsed at index 11
at java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2052)
at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1954)

Do you know if -1228158000000 is a value provided as "input" to the preparation ? 

Kind regards
Denis