{"record":{"id":"fe02eed8af471c2f","repo":"pathwaycom/pathway","slug":"lower-bound-has-to-be-less-than-or-equal-to-the-up","errorCode":null,"errorMessage":"lower_bound has to be less than or equal to the upper_bound in the Table.interval_join().","messagePattern":"lower_bound has to be less than or equal to the upper_bound in the Table\\.interval_join\\(\\)\\.","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/pathway/stdlib/temporal/_interval_join.py","lineNumber":207,"sourceCode":"        right_instance: pw.ColumnReference | None = None,\n    ) -> IntervalJoinResult:\n        \"\"\"Creates an IntervalJoinResult. To perform an interval join uses it uses two\n        tumbling windows of size `lower_bound` + `upper_bound` and then filters the result.\n        \"\"\"\n        check_joint_types(\n            {\n                \"self_time_expression\": (left_time_expression, TimeEventType),\n                \"other_time_expression\": (right_time_expression, TimeEventType),\n                \"lower_bound\": (interval.lower_bound, IntervalType),\n                \"upper_bound\": (interval.upper_bound, IntervalType),\n            }\n        )\n        if left == right:\n            raise ValueError(\n                \"Cannot join table with itself. Use <table>.copy() as one of the arguments of the join.\"\n            )\n        if interval.lower_bound > interval.upper_bound:  # type: ignore[operator]\n            raise ValueError(\n                \"lower_bound has to be less than or equal to the upper_bound in the Table.interval_join().\"\n            )\n\n        if interval.lower_bound == interval.upper_bound:\n            cls: type[IntervalJoinResult] = _ZeroDifferenceIntervalJoinResult\n        else:\n            cls = _NonZeroDifferenceIntervalJoinResult\n        return cls._interval_join(\n            left,\n            right,\n            left_time_expression,\n            right_time_expression,\n            interval,\n            *on,\n            behavior=behavior,\n            mode=mode,\n            left_instance=left_instance,\n            right_instance=right_instance,","sourceCodeStart":189,"sourceCodeEnd":225,"githubUrl":"https://github.com/pathwaycom/pathway/blob/fa2f74a4649b7c5908690cf60137263d8d80de5f/python/pathway/stdlib/temporal/_interval_join.py#L189-L225","documentation":"Error \"lower_bound has to be less than or equal to the upper_bound in the Table.interval_join().\" thrown in pathwaycom/pathway.","triggerScenarios":"Thrown at python/pathway/stdlib/temporal/_interval_join.py:207 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass a lower_bound that is less than or equal to upper_bound (use non-positive lower_bound and non-negative upper_bound)."],"exampleFix":"t1.interval_join(t2, t1.t, t2.t, lower_bound=timedelta(seconds=-10), upper_bound=timedelta(seconds=10))","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-15T22:17:37.221Z"}