Skip to content
Discussions/App Development/What does the `Cannot project Contract` error mean in the Navigator log?Forum ↗

What does the `Cannot project Contract` error mean in the Navigator log?

App Development7 posts347 views5 likesLast activity Aug 2020
GY
gyorgybalazsiOP
Aug 2020

In my current project, I can see a lot of error messages like this, otherwise, the contract package seems to work as expected.

12:55:36.810 [da-ui-backend-akka.actor.default-dispatcher-5] ERROR c.d.navigator.query.ContractSorter - Cannot project Contract(00fabbdb0943c341c9da65dee9fbc3a166b3aa170623a02bc1c27f92e70cfdd4a8,Template(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Main:PendingProcess,List(Choice(TerminateProcess,TypeCon(TypeConName(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Main:TerminateProcess),ImmArray.ImmArraySeq()),TypePrim(PrimTypeContractId,ImmArray.ImmArraySeq(TypeCon(TypeConName(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Main:TerminatedProcess),ImmArray.ImmArraySeq()))),false), Choice(QuerySnapshotAndHistory,TypeCon(TypeConName(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Main:QuerySnapshotAndHistory),ImmArray.ImmArraySeq()),TypeCon(TypeConName(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:SnapshotAndHistory),ImmArray.ImmArraySeq()),false), Choice(Summarize,TypeCon(TypeConName(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Main:Summarize),ImmArray.ImmArraySeq()),TypePrim(PrimTypeContractId,ImmArray.ImmArraySeq(TypeCon(TypeConName(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Main:PendingProcess),ImmArray.ImmArraySeq()))),true), Choice(Archive,TypeCon(TypeConName(d14e08374fc7197d6a0de468c968ae8ba3aadbf9315476fd39071831f5923662:DA.Internal.Template:Archive),ImmArray.ImmArraySeq()),TypePrim(PrimTypeUnit,ImmArray.ImmArraySeq()),true), Choice(KillProcessForTimeOut,TypeCon(TypeConName(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Main:KillProcessForTimeOut),ImmArray.ImmArraySeq()),TypePrim(PrimTypeContractId,ImmArray.ImmArraySeq(TypeCon(TypeConName(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Main:ProcessExeededTimeout),ImmArray.ImmArraySeq()))),false)),Some(TypeCon(TypeConName(40f452260bef3f29dede136108fc08a88d5a5250310281067087da6f0baddff7:DA.Types:Tuple2),ImmArray.ImmArraySeq(TypePrim(PrimTypeParty,ImmArray.ImmArraySeq()), TypePrim(PrimTypeText,ImmArray.ImmArraySeq()))))),ValueRecord(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Main:PendingProcess),ImmArray((Some(networkAdmin),ValueParty(NetworkAdmin)),(Some(processAdmin),ValueParty(ProcessAdmin)),(Some(personId),ValueRecord(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:PersonId),ImmArray((Some(processId),ValueText(efgh)),(Some(decadeOfBirth),ValueInt64(1990))))),(Some(inputs),ValueList(FrontStack(ValueVariant(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:Input),MedicalFitnessInput,ValueVariant(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:MedicalFitness),MedicalFitnessInputSubmission,ValueRecord(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:MedicalFitness.MedicalFitnessInputSubmission),ImmArray((Some(fitness),ValueVariant(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:Fitness),Fit,ValueRecord(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:Fitness.Fit),ImmArray((Some(expiry),ValueTimestamp(2030-04-28T12:00:00Z)))))),(Some(orderingDateTime),ValueRecord(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:OrderingDateTime),ImmArray((Some(officialDate),ValueDate(2020-04-28)),(Some(arrivalTime),ValueTimestamp(2020-04-28T12:00:00Z))))))))),ValueVariant(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:Input),DrivingPracticeTestInput,ValueVariant(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:DrivingPracticeTest),DrivingPracticeTestInputSubmission,ValueRecord(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:DrivingPracticeTest.DrivingPracticeTestInputSubmission),ImmArray((Some(orderingDateTime),ValueRecord(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:OrderingDateTime),ImmArray((Some(officialDate),ValueDate(2020-04-28)),(Some(arrivalTime),ValueTimestamp(2020-04-28T12:00:00Z))))))))),ValueVariant(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:Input),FirstAidTestInput,ValueVariant(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:FirstAidTest),FirstAidTestInputSubmission,ValueRecord(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:FirstAidTest.FirstAidTestInputSubmission),ImmArray((Some(orderingDateTime),ValueRecord(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:OrderingDateTime),ImmArray((Some(officialDate),ValueDate(2020-04-28)),(Some(arrivalTime),ValueTimestamp(2020-04-28T12:00:00Z))))))))),ValueVariant(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:Input),DeclarationInput,ValueVariant(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:Declaration),DeclarationInputSubmission,ValueRecord(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:Declaration.DeclarationInputSubmission),ImmArray((Some(fieldA),ValueRecord(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:FieldA),ImmArray((Some(answer),ValueBool(true)),(Some(text_version),ValueInt64(1)),(Some(to_be_evaluated),ValueBool(true))))),(Some(fieldB),ValueRecord(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:FieldB),ImmArray((Some(answer),ValueBool(true)),(Some(text_version),ValueInt64(1)),(Some(to_be_evaluated),ValueBool(true))))),(Some(fieldC),ValueRecord(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:FieldC),ImmArray((Some(answer),ValueBool(true)),(Some(text_version),ValueInt64(1)),(Some(to_be_evaluated),ValueBool(true))))),(Some(fieldD),ValueRecord(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:FieldD),ImmArray((Some(answer),ValueBool(true)),(Some(text_version),ValueInt64(1)),(Some(to_be_evaluated),ValueBool(true))))),(Some(fieldE),ValueRecord(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:FieldE),ImmArray((Some(answer),ValueBool(true)),(Some(text_version),ValueInt64(1)),(Some(to_be_evaluated),ValueBool(true))))),(Some(fieldF),ValueRecord(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:FieldF),ImmArray((Some(answer),ValueBool(true)),(Some(text_version),ValueInt64(1)),(Some(to_be_evaluated),ValueBool(true))))),(Some(orderingDateTime),ValueRecord(Some(512642fa6a909ea1511eeb152329836a588bbb0e85672678bfc23ff1ed56d3ad:Utilities:OrderingDateTime),ImmArray((Some(officialDate),ValueDate(2020-04-28)),(Some(arrivalTime),ValueTimestamp(2020-04-28T12:00:00Z)))))))))))),(Some(drivingOk),ValueBool(true)),(Some(printingOk),ValueBool(false)))),Some(),List(NetworkAdmin, ProcessAdmin),List(),Some(ValueRecord(Some(40f452260bef3f29dede136108fc08a88d5a5250310281067087da6f0baddff7:DA.Types:Tuple2),ImmArray((Some(_1),ValueParty(ProcessAdmin)),(Some(_2),ValueText(efgh)))))) with criterion SortCriterion(processId,ASCENDING): UnknownProperty(contract,[processId],). Using None. 
ST
stefanobaghino-da
Aug 2020
Cannot project ... UnknownProperty(contract,[processId],).

Looks like Navigator wants to sort by processId but the property cannot be found. Does your template have a processId field?

GY
gyorgybalazsi
Aug 2020

Yes, will check the frontend-config.js, where the sorting is defined, I have made changes, may be that I didn’t change everywhere, thank you!

GY
gyorgybalazsi
Aug 2020

@stefanobaghino-da I’m afraid I don’t understand what sort/field and the columns/key exactly mean in the frontend-config.js, that’s why this mismatch happens.

export const customViews = (userId, party, role) => ({
  customview1: {
    type: "table-view",
    title: "Filtered contracts",
    source: {
      type: "contracts",
      filter: [
        {
          field: "id",
          value: "1",
        }
      ],
      search: "",
      sort: [
        {
          field: "id",
          direction: "ASCENDING"
        }
      ]
    },
    columns: [
      {
        key: "id",
        title: "Contract ID",
        createCell: ({rowData}) => ({
          type: "text",
          value: rowData.id
        }),
        sortable: true,
        width: 80,
        weight: 0,
        alignment: "left"
      },
ST
stefanobaghino-da
Aug 2020

I may be wrong (I’m not extremely familiar with the internals of Navigator), but that file is probably built using the the package service. Does restarting Navigator help?

EDIT: this was a wild guess, I don’t think it’ll actually work.

ST
stefanobaghino-da
Aug 2020

I had a better look at the docs. This configuration file is mentioned here.

Do you need the custom view to be there in the first place? If not, you can probably simply remove the frontend-config.js file.

GY
gyorgybalazsi
Aug 2020

Yes, I need custom views. I open another issue more specifically for this question, thank you for your help so far!

← Back to Discussions