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

Announcements
Join us in Toronto Sept 9th 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
janyf
Partner - Creator
Partner - Creator

Have same issue , as this is part of mandatory certification , could someone from Qlik (talend) look at it ? 

Exception in component tDataprepRun_1 (Process_Data)
java.lang.NullPointerException: Cannot invoke "org.talend.dataquality.semantic.snapshot.DictionarySnapshot.getDQCategoryByName(String)" because "dictionarySnapshot" is null
at org.talend.dsel.functions.custom.IsOfTypeUtility.isSemanticType(IsOfTypeUtility.java:60)
at org.talend.dsel.functions.custom.IsOfTypeUtility.evaluate(IsOfTypeUtility.java:28)
at org.talend.dsel.functions.custom.IsInvalid.call(IsInvalid.java:28)
at org.talend.maplang.el.interpreter.impl.function.ExprLangFunctions.call(ExprLangFunctions.java:45)
at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitStandardFunction(ExprEvalVisitorImpl.java:363)
at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitFunctionCall(ExprEvalVisitorImpl.java:351)
at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitFunctionCall(ExprEvalVisitorImpl.java:41)
at org.talend.maplang.el.parser.model.ELNode.accept(ELNode.java:482)
at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitChildren(ExprEvalVisitorImpl.java:500)
at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitBlock(ExprEvalVisitorImpl.java:113)
at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitBlock(ExprEvalVisitorImpl.java:41)
at org.talend.maplang.el.parser.model.ELNode.accept(ELNode.java:445)
at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitChildren(ExprEvalVisitorImpl.java:500)
at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitRoot(ExprEvalVisitorImpl.java:108)
at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitRoot(ExprEvalVisitorImpl.java:41)
at org.talend.maplang.el.parser.model.ELNode.accept(ELNode.java:443)
at org.talend.maplang.el.interpreter.impl.ExprInterpreterImpl.evalAsExprValue(ExprInterpreterImpl.java:199)
at org.talend.maplang.el.interpreter.impl.ExprInterpreterImpl.evalAsBoolean(ExprInterpreterImpl.java:107)
at org.talend.components.processing.functions.AbstractBaseFunction.isRecordMatchingFilter(AbstractBaseFunction.java:233)
at org.talend.components.processing.functions.AbstractBaseFunction.applyOnRecord(AbstractBaseFunction.java:171)
at org.talend.components.processing.functions.AbstractBaseFunction.transform(AbstractBaseFunction.java:156)
at org.talend.components.processing.functions.technical.Composite.transform(Composite.java:53)
at org.talend.components.dataprep.preparation.Preparation.transform(Preparation.java:50)
at org.talend.components.dataprep.processor.DataPrepProcessor.onElement(DataPrepProcessor.java:99)
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_test.process_data_0_1.Process_Data.tFileInputDelimited_1Process(Process_Data.java:4689)
at talend_test.process_data_0_1.Process_Data.runJobInTOS(Process_Data.java:7456)
at talend_test.process_data_0_1.Process_Data.main(Process_Data.java:6934)
vinodn1989
Partner - Contributor III
Partner - Contributor III

Any luck with the solutions? Facing the same issue 

 

Here is the log:

Starting job Process_Data at 14:03 31/07/2025.
[statistics] connecting to socket on port 3631
[statistics] connected
[FATAL] 14:03:27 qpresales.process_data_0_1.Process_Data- tDataprepRun_1 Cannot invoke "org.talend.dataquality.semantic.snapshot.DictionarySnapshot.getDQCategoryByName(String)" because "dictionarySnapshot" is null
java.lang.NullPointerException: Cannot invoke "org.talend.dataquality.semantic.snapshot.DictionarySnapshot.getDQCategoryByName(String)" because "dictionarySnapshot" is null
	at org.talend.dsel.functions.custom.IsOfTypeUtility.isSemanticType(IsOfTypeUtility.java:60) ~[daikon-ee-dsel-8.5.4.jar:?]
	at org.talend.dsel.functions.custom.IsOfTypeUtility.evaluate(IsOfTypeUtility.java:28) ~[daikon-ee-dsel-8.5.4.jar:?]
	at org.talend.dsel.functions.custom.IsInvalid.call(IsInvalid.java:28) ~[daikon-ee-dsel-8.5.4.jar:?]
	at org.talend.maplang.el.interpreter.impl.function.ExprLangFunctions.call(ExprLangFunctions.java:45) ~[org.talend.maplang.el.interpreter-1.10.0.jar:?]
	at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitStandardFunction(ExprEvalVisitorImpl.java:363) ~[org.talend.maplang.el.interpreter-1.10.0.jar:?]
	at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitFunctionCall(ExprEvalVisitorImpl.java:351) ~[org.talend.maplang.el.interpreter-1.10.0.jar:?]
	at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitFunctionCall(ExprEvalVisitorImpl.java:41) ~[org.talend.maplang.el.interpreter-1.10.0.jar:?]
	at org.talend.maplang.el.parser.model.ELNode.accept(ELNode.java:482) ~[org.talend.maplang.el.parser-1.10.0.jar:?]
	at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitChildren(ExprEvalVisitorImpl.java:500) ~[org.talend.maplang.el.interpreter-1.10.0.jar:?]
	at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitBlock(ExprEvalVisitorImpl.java:113) ~[org.talend.maplang.el.interpreter-1.10.0.jar:?]
	at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitBlock(ExprEvalVisitorImpl.java:41) ~[org.talend.maplang.el.interpreter-1.10.0.jar:?]
	at org.talend.maplang.el.parser.model.ELNode.accept(ELNode.java:445) ~[org.talend.maplang.el.parser-1.10.0.jar:?]
	at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitChildren(ExprEvalVisitorImpl.java:500) ~[org.talend.maplang.el.interpreter-1.10.0.jar:?]
	at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitRoot(ExprEvalVisitorImpl.java:108) ~[org.talend.maplang.el.interpreter-1.10.0.jar:?]
	at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitRoot(ExprEvalVisitorImpl.java:41) ~[org.talend.maplang.el.interpreter-1.10.0.jar:?]
	at org.talend.maplang.el.parser.model.ELNode.accept(ELNode.java:443) ~[org.talend.maplang.el.parser-1.10.0.jar:?]
	at org.talend.maplang.el.interpreter.impl.ExprInterpreterImpl.evalAsExprValue(ExprInterpreterImpl.java:199) ~[org.talend.maplang.el.interpreter-1.10.0.jar:?]
	at org.talend.maplang.el.interpreter.impl.ExprInterpreterImpl.evalAsBoolean(ExprInterpreterImpl.java:107) ~[org.talend.maplang.el.interpreter-1.10.0.jar:?]
	at org.talend.components.processing.functions.AbstractBaseFunction.isRecordMatchingFilter(AbstractBaseFunction.java:233) ~[processing-functions-1.70.1.jar:?]
	at org.talend.components.processing.functions.AbstractBaseFunction.applyOnRecord(AbstractBaseFunction.java:171) ~[processing-functions-1.70.1.jar:?]
	at org.talend.components.processing.functions.AbstractBaseFunction.transform(AbstractBaseFunction.java:156) ~[processing-functions-1.70.1.jar:?]
	at org.talend.components.processing.functions.technical.Composite.transform(Composite.java:53) ~[processing-functions-1.70.1.jar:?]
	at org.talend.components.dataprep.preparation.Preparation.transform(Preparation.java:50) ~[dataprep-1.70.1.jar:?]
	at org.talend.components.dataprep.processor.DataPrepProcessor.onElement(DataPrepProcessor.java:99) ~[dataprep-1.70.1.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.80.1.jar:?]
	at org.talend.sdk.component.runtime.output.ProcessorImpl.onNext(ProcessorImpl.java:303) ~[component-runtime-impl-1.80.1.jar:?]
	at org.talend.sdk.component.runtime.di.AutoChunkProcessor.onElement(AutoChunkProcessor.java:38) ~[component-runtime-di-1.80.1.jar:?]
	at qpresales.process_data_0_1.Process_Data.tFileInputDelimited_1Process(Process_Data.java:2305) [classes/:?]
	at qpresales.process_data_0_1.Process_Data.runJobInTOS(Process_Data.java:4082) [classes/:?]
	at qpresales.process_data_0_1.Process_Data.main(Process_Data.java:3560) [classes/:?]
Exception in component tDataprepRun_1 (Process_Data)
java.lang.NullPointerException: Cannot invoke "org.talend.dataquality.semantic.snapshot.DictionarySnapshot.getDQCategoryByName(String)" because "dictionarySnapshot" is null
	at org.talend.dsel.functions.custom.IsOfTypeUtility.isSemanticType(IsOfTypeUtility.java:60)
	at org.talend.dsel.functions.custom.IsOfTypeUtility.evaluate(IsOfTypeUtility.java:28)
	at org.talend.dsel.functions.custom.IsInvalid.call(IsInvalid.java:28)
	at org.talend.maplang.el.interpreter.impl.function.ExprLangFunctions.call(ExprLangFunctions.java:45)
	at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitStandardFunction(ExprEvalVisitorImpl.java:363)
	at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitFunctionCall(ExprEvalVisitorImpl.java:351)
	at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitFunctionCall(ExprEvalVisitorImpl.java:41)
	at org.talend.maplang.el.parser.model.ELNode.accept(ELNode.java:482)
	at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitChildren(ExprEvalVisitorImpl.java:500)
	at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitBlock(ExprEvalVisitorImpl.java:113)
	at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitBlock(ExprEvalVisitorImpl.java:41)
	at org.talend.maplang.el.parser.model.ELNode.accept(ELNode.java:445)
	at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitChildren(ExprEvalVisitorImpl.java:500)
	at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitRoot(ExprEvalVisitorImpl.java:108)
	at org.talend.maplang.el.interpreter.impl.ExprEvalVisitorImpl.visitRoot(ExprEvalVisitorImpl.java:41)
	at org.talend.maplang.el.parser.model.ELNode.accept(ELNode.java:443)
	at org.talend.maplang.el.interpreter.impl.ExprInterpreterImpl.evalAsExprValue(ExprInterpreterImpl.java:199)
	at org.talend.maplang.el.interpreter.impl.ExprInterpreterImpl.evalAsBoolean(ExprInterpreterImpl.java:107)
	at org.talend.components.processing.functions.AbstractBaseFunction.isRecordMatchingFilter(AbstractBaseFunction.java:233)
	at org.talend.components.processing.functions.AbstractBaseFunction.applyOnRecord(AbstractBaseFunction.java:171)
	at org.talend.components.processing.functions.AbstractBaseFunction.transform(AbstractBaseFunction.java:156)
	at org.talend.components.processing.functions.technical.Composite.transform(Composite.java:53)
	at org.talend.components.dataprep.preparation.Preparation.transform(Preparation.java:50)
	at org.talend.components.dataprep.processor.DataPrepProcessor.onElement(DataPrepProcessor.java:99)
	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 qpresales.process_data_0_1.Process_Data.tFileInputDelimited_1Process(Process_Data.java:2305)
	at qpresales.process_data_0_1.Process_Data.runJobInTOS(Process_Data.java:4082)
	at qpresales.process_data_0_1.Process_Data.main(Process_Data.java:3560)
[statistics] disconnected

Job Process_Data ended at 14:03 31/07/2025. [Exit code  = 1]
igoralcantara
Partner Ambassador/MVP
Partner Ambassador/MVP
Author

I got it to work. The data preparation in Talend Cloud provided had a bug that blocked it from being called from Talend Studio. Use the one attached instead. 

Check out my latest posts at datavoyagers.net
jscantamburlo2
Partner - Contributor
Partner - Contributor

Check 'Use dictionary' in the advanced settings to enable semantic dictionary usage on preparation steps.

Tested on Studio 8.20250730_0900-patch

igoralcantara
Partner Ambassador/MVP
Partner Ambassador/MVP
Author

This solution does not apply here in this case, it just gives a different error message. I have provided the solution above.

Check out my latest posts at datavoyagers.net
chris_khalife
Support
Support

Hi Team,

Support is still actively investigating this issue, currently we do not have a proper reproduction scenario. For the job I have that was impacted, I found recreating the tDataPrep component worked in my case. However that seems to contradict Igor's solution where there were issues with Studio calling the specific preparation. If anyone has a reproduction scenario let me know, Support will still continue to actively investigate this issue on our end.

 

Best Regards,

Qlik Talend Support

igoralcantara
Partner Ambassador/MVP
Partner Ambassador/MVP
Author

Thank you!

Check out my latest posts at datavoyagers.net
marksouzacosta

Hi @chris_khalife,

I have simple case that you can use to reproduce the error.

Sample data source: people-100000.csv
Downloaded from: https://www.datablist.com/learn/csv/download-sample-csv-files#people-dataset
Talend Studio: R2025-07v02

marksouzacosta_6-1755485842015.png

 

Steps:

1. Go to Talend Cloud Data Preparation > Data Sets and add a new data set for people-100000.csv. I have called it people-100000:

marksouzacosta_0-1755483550703.png

Sample view:

marksouzacosta_1-1755483583961.png

 

2. Go to Talend Cloud Data Preparation > Preparations add a new preparation called PeopleDataPrep for people-100000 dataset. This Data Preparation has only one rule, to remove invalid phones.
Click on the Phone column, add the Delete the rows with invalid cells. (exported version attached to this message):

marksouzacosta_2-1755484721059.png

 

3. Go to Talend Studio, create a new Job and add three blocks:
tFileInputDelimited -> tDataPrepRun -> tLogRow

tFileInputDelimited properties:

marksouzacosta_3-1755484925445.png

tDataPrepRun properties:

marksouzacosta_4-1755485051357.png

4. Run the job - error attached to this message.

marksouzacosta_5-1755485166506.png

Note:
We could run the Data Preparation for the very same file in Talend Cloud without any error.

 

Please let me know if you need any additional information.


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,
Thanks for the details , unfortunately , I cannot reproduce the error 

1. Do you reproduce the error when having only the 2 fist lines in the file people-100000.csv used by the component tFileInputDelimited  ?

Index,User Id,First Name,Last Name,xxx,Email,Phone,Date of birth,Job Title
1,e09c4f4cbfEFaFd,Dawn,Trevino,Male,clintongood@example.org,360-423-5286,1972-01-17,"Teacher, primary school"

Could you execute the command below using the java used by Talend Studio and provide the output : 
java -XshowSettings:all

Kind regards
Denis

Denis_Segard
Support
Support

NOTE : I was able to reproduce the error after having unchecked the option "Use Dictionary" : 

Denis_Segard_0-1755506397061.png

But when it is checked and the "Dictionary version" selected , the job works fine ...

Kind regards
Denis