{"record":{"id":"09af67855b098034","repo":"pathwaycom/pathway","slug":"invalid-ssl-mode-ssl-mode-expected-one-of-dis","errorCode":null,"errorMessage":"invalid ssl mode '{ssl_mode}', expected one of disable, allow, prefer, require, verify-ca, verify-full","messagePattern":"invalid ssl mode '(.+?)', expected one of disable, allow, prefer, require, verify-ca, verify-full","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/pathway/internals/_io_helpers.py","lineNumber":78,"sourceCode":"        )\n\n\ndef _parse_ssl_mode(ssl_mode: str) -> api.SslMode:\n    match ssl_mode.lower():\n        case \"disable\":\n            return api.SslMode.DISABLE\n        case \"allow\":\n            return api.SslMode.ALLOW\n        case \"prefer\":\n            return api.SslMode.PREFER\n        case \"require\":\n            return api.SslMode.REQUIRE\n        case \"verify-ca\" | \"verify_ca\":\n            return api.SslMode.VERIFY_CA\n        case \"verify-full\" | \"verify_full\":\n            return api.SslMode.VERIFY_FULL\n        case _:\n            raise ValueError(\n                f\"invalid ssl mode '{ssl_mode}', expected one of \"\n                \"disable, allow, prefer, require, verify-ca, verify-full\"\n            )\n\n\nclass AwsS3Settings:\n    \"\"\"Stores Amazon S3 connection settings. You may also use this class to store\n    configuration settings for any custom S3 installation, however you will need to\n    specify the region and the endpoint.\n\n    Args:\n        bucket_name: Name of S3 bucket.\n        access_key: Access key for the bucket.\n        secret_access_key: Secret access key for the bucket.\n        with_path_style: Whether to use path-style requests.\n        region: Region of the bucket.\n        endpoint: Custom endpoint in case of self-hosted storage.\n        session_token: Session token, an alternative way to authenticate to S3.","sourceCodeStart":60,"sourceCodeEnd":96,"githubUrl":"https://github.com/pathwaycom/pathway/blob/fa2f74a4649b7c5908690cf60137263d8d80de5f/python/pathway/internals/_io_helpers.py#L60-L96","documentation":"pw.io.chroma.write requires column arguments (e.g. row_id, metadata) to be ColumnReference objects from the exact table passed as the first argument. _check_belongs compares column._table identity with the target table and raises ValueError on mismatch, since column identity is table-scoped.","triggerScenarios":"Calling pw.io.chroma.write(table, ..., row_id=other_table.id) or metadata_column=other_table.some_col where the reference's table differs from the written table.","commonSituations":"Embedding pipelines where documents are embedded into a new table (t = raw_table + embeddings) but the id column is still referenced from raw_table; refactor renames leaving stale references.","solutions":["Reference columns from the table passed to write, e.g. pw.io.chroma.write(t, ..., row_id=t.id).","If the needed column lives on another table, join it into t first so all passed references share t.","Follow the hint in the message: pass role=table.<column> form."],"exampleFix":"# before\nembedded = documents + embeddings\npw.io.chroma.write(embedded, ..., row_id=documents.id)\n\n# after\nembedded = documents + embeddings\npw.io.chroma.write(embedded, ..., row_id=embedded.id)","handlingStrategy":"validation","validationCode":"def check_chroma_columns(table: pw.Table, **cols: pw.ColumnReference | None) -> None:\n    for role, c in cols.items():\n        if c is not None and c._table is not table:\n            raise ValueError(f\"{role} column {c._name!r} not from {table}\")\n\ncheck_chroma_columns(t, row_id=row_id, metadata=metadata)\npw.io.chroma.write(t, ..., row_id=row_id, metadata=metadata)","typeGuard":"def from_table(column: pw.ColumnReference, table: pw.Table) -> bool:\n    return column._table is table","tryCatchPattern":null,"preventionTips":["Write connector calls with inline table.column references (e.g. row_id=t.id), not pre-bound variables.","After with_columns/rename refactorings, re-point every column argument at the final table."],"tags":["pathway","chroma","vector-db","column-reference","validation"],"backgroundTag":null,"analyzedSha":"fa2f74a4649b7c5908690cf60137263d8d80de5f","analyzedAt":"2026-08-15T01:48:17.006Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}