Hi team, we recently upgraded our version of metaf...
# ask-metaflow
h
Hi team, we recently upgraded our version of metaflow 2.12.4 to 2.13.3 and ran into the following Argo error when trying to run a flow, any ideas?
Copy code
Failed: invalid spec: templates.MyFlow.tasks.join-tasks templates.join-tasks.inputs.parameters[2].name 'split-cardinality' is not unique
βœ… 1
a
what version of argo are you running?
do you have a parameter name called split-cardinality?
h
@ancient-application-36103 I don't have a
split-cardinality
parameter in the flow, looks like we are on
v2.11.7
a
argo
2.11.7
?
there was a regression in argo by itself - perhaps you are running into that?
a
yeah we add that parameter in - there is a likelihood that it may conflict with a user defined parameter - but that isn't the case here
2.11.7
for argo seems like a very old version?
r
looked at the wrong place earlier. our argo team says we’re on
3.5.1
a
yeah i think you will have to upgrade to at least 3.5.5
r
I see. thanks for the pointer! So does metaflow internally create tasks named β€œsplit”? The error msg reported on 3.5.0 (
unable to evaluate expression
) seems a bit different from what we see. (
invalid spec
)
a
we create an argo output parameter called
split-cardinality
. are you sure nothing else injects this parameter in your flow?
πŸ‘€ 1
h
I modified to a very simple flow (🧡) and can see duplicated
split-cardinality
in the join step:
Copy code
- name: combine-er-steps
      inputs:
        parameters:
          - name: input-paths
          - name: split-cardinality
          - name: split-cardinality
Copy code
class ErWorkflow(FlowSpec):  # type: ignore
    # pylint: disable=too-many-instance-attributes

    @step
    def start(self) -> None:
        print("start")
        self.next(self.run_er_steps)

    @step
    def run_er_steps(self) -> None:
        self.my_lst = [1, 2, 3]
        self.next(self.dummy_step, foreach="my_lst")

    @step
    def dummy_step(self) -> None:
        self.next(self.combine_er_steps)

    @step
    def combine_er_steps(self, inputs: Inputs) -> None:
        self.next(self.end)

    @step
    def end(self) -> None:
        print("end")
πŸ‘€ 1
a
cc @thankful-ambulance-42457 for triage
h
fyi, this may be an issue on our fork during latest update, you can hold off on investigation, will let you know
πŸ‘πŸΌ 1
this was a fork issue, all good now, sorry about that
πŸ‘Œ 1
πŸ‘ŒπŸΌ 1
t
glad to hear it got sorted πŸ™‚