{"record":{"id":"c05f66b4e7e6abd1","repo":"pathwaycom/pathway","slug":"asof-now-join-can-only-use-modes-pathway-joinmode","errorCode":null,"errorMessage":"asof_now_join can only use modes pathway.JoinMode.INNER or pathway.JoinMode.LEFT","messagePattern":"asof_now_join can only use modes pathway\\.JoinMode\\.INNER or pathway\\.JoinMode\\.LEFT","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/pathway/stdlib/temporal/_asof_now_join.py","lineNumber":68,"sourceCode":"        self._mode = mode\n        self._id = id\n        self._substitution = {pw.left: left, pw.right: right, pw.this: join_result}\n\n    @staticmethod\n    def _asof_now_join(\n        left: pw.Table,\n        right: pw.Table,\n        *on: expr.ColumnExpression,\n        mode: pw.JoinMode,\n        id: expr.ColumnReference | None = None,\n        left_instance: expr.ColumnReference | None = None,\n        right_instance: expr.ColumnReference | None = None,\n        exact_match: bool = False,  # if True do not optionalize output columns even if other than inner join is used\n    ) -> AsofNowJoinResult:\n        # TODO assert that left is append-only\n\n        if mode != pw.JoinMode.INNER and mode != pw.JoinMode.LEFT:\n            raise ValueError(\n                \"asof_now_join can only use modes pathway.JoinMode.INNER or pathway.JoinMode.LEFT\"\n            )\n\n        left_with_forgetting = left._forget_immediately()\n        if left_instance is not None and right_instance is not None:\n            on = (*on, left_instance == right_instance)\n        else:\n            assert left_instance is None and right_instance is None\n        for cond in on:\n            cond_left, _, cond = validate_join_condition(cond, left, right)\n            cond._left = left_with_forgetting[cond_left._name]\n        if id is not None and id.table == left:\n            id = left_with_forgetting[id._name]\n\n        table_substitution: dict[pw.TableLike, pw.Table] = {\n            left: left_with_forgetting,\n        }\n        join_result = JoinResult._table_join(","sourceCodeStart":50,"sourceCodeEnd":86,"githubUrl":"https://github.com/pathwaycom/pathway/blob/fa2f74a4649b7c5908690cf60137263d8d80de5f/python/pathway/stdlib/temporal/_asof_now_join.py#L50-L86","documentation":"Error \"asof_now_join can only use modes pathway.JoinMode.INNER or pathway.JoinMode.LEFT\" thrown in pathwaycom/pathway.","triggerScenarios":"Thrown at python/pathway/stdlib/temporal/_asof_now_join.py:68 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use how=pw.JoinMode.INNER or how=pw.JoinMode.LEFT for asof_now_join."],"exampleFix":"t1.asof_now_join(t2, how=pw.JoinMode.LEFT)","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fa2f74a4649b7c5908690cf60137263d8d80de5f","analyzedAt":"2026-08-15T01:48:17.006Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}