Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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?
Have same issue , as this is part of mandatory certification , could someone from Qlik (talend) look at it ?
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]
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 'Use dictionary' in the advanced settings to enable semantic dictionary usage on preparation steps.
Tested on Studio 8.20250730_0900-patch
This solution does not apply here in this case, it just gives a different error message. I have provided the solution above.
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
Thank you!
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
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:
Sample view:
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):
3. Go to Talend Studio, create a new Job and add three blocks:
tFileInputDelimited -> tDataPrepRun -> tLogRow
tFileInputDelimited properties:
tDataPrepRun properties:
4. Run the job - error attached to this message.
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
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
NOTE : I was able to reproduce the error after having unchecked the option "Use Dictionary" :
But when it is checked and the "Dictionary version" selected , the job works fine ...
Kind regards
Denis