diff --git a/404.html b/404.html index cfeef52150..0961af4c48 100644 --- a/404.html +++ b/404.html @@ -24,7 +24,7 @@ - + diff --git a/agent-tutorial.html b/agent-tutorial.html index f95981ed05..5193c48493 100644 --- a/agent-tutorial.html +++ b/agent-tutorial.html @@ -24,7 +24,7 @@ - + diff --git a/agents-tools.html b/agents-tools.html index 2ff8d32c9f..46dc0c3862 100644 --- a/agents-tools.html +++ b/agents-tools.html @@ -24,7 +24,7 @@ - + diff --git a/agents.html b/agents.html index 623ae7588a..046b847ae5 100644 --- a/agents.html +++ b/agents.html @@ -24,7 +24,7 @@ - + diff --git a/api-build.html b/api-build.html index aee86d025a..b8d96be67b 100644 --- a/api-build.html +++ b/api-build.html @@ -24,7 +24,7 @@ - + diff --git a/api-files.html b/api-files.html index b474af9db4..5508450535 100644 --- a/api-files.html +++ b/api-files.html @@ -24,7 +24,7 @@ - + diff --git a/api-flows-run.html b/api-flows-run.html index c7ea6cfb88..154fcb23e5 100644 --- a/api-flows-run.html +++ b/api-flows-run.html @@ -24,7 +24,7 @@ - + diff --git a/api-flows.html b/api-flows.html index 932c23a5bd..1887577fc3 100644 --- a/api-flows.html +++ b/api-flows.html @@ -24,7 +24,7 @@ - + diff --git a/api-keys-and-authentication.html b/api-keys-and-authentication.html index 1eaf56dc6a..60d5e4c75d 100644 --- a/api-keys-and-authentication.html +++ b/api-keys-and-authentication.html @@ -24,7 +24,7 @@ - + diff --git a/api-logs.html b/api-logs.html index e9b7c0d326..6ab4a943e7 100644 --- a/api-logs.html +++ b/api-logs.html @@ -24,7 +24,7 @@ - + diff --git a/api-monitor.html b/api-monitor.html index f63fdd2ba2..d20b378d68 100644 --- a/api-monitor.html +++ b/api-monitor.html @@ -24,7 +24,7 @@ - + diff --git a/api-openai-responses.html b/api-openai-responses.html index 8b11f1ab2e..36c0d780cf 100644 --- a/api-openai-responses.html +++ b/api-openai-responses.html @@ -24,7 +24,7 @@ - + diff --git a/api-projects.html b/api-projects.html index b93f3e8e61..4e8bc8259e 100644 --- a/api-projects.html +++ b/api-projects.html @@ -24,7 +24,7 @@ - + diff --git a/api-reference-api-examples.html b/api-reference-api-examples.html index 8bc789dd02..42018b5243 100644 --- a/api-reference-api-examples.html +++ b/api-reference-api-examples.html @@ -24,7 +24,7 @@ - + diff --git a/api-request.html b/api-request.html index 2cf1ae700c..3ec9084afd 100644 --- a/api-request.html +++ b/api-request.html @@ -24,7 +24,7 @@ - + diff --git a/api-users.html b/api-users.html index e7ebf0d273..7e1cb6a0d4 100644 --- a/api-users.html +++ b/api-users.html @@ -24,7 +24,7 @@ - + diff --git a/api.html b/api.html index 52f32559c3..300647211c 100644 --- a/api.html +++ b/api.html @@ -24,7 +24,7 @@ - + diff --git a/api/openapi.json.html b/api/openapi.json.html index efbd60181c..89f56f62eb 100644 --- a/api/openapi.json.html +++ b/api/openapi.json.html @@ -24,7 +24,7 @@ - + diff --git a/api/openapi.yaml.html b/api/openapi.yaml.html index 32ba9ec40f..3ce856d999 100644 --- a/api/openapi.yaml.html +++ b/api/openapi.yaml.html @@ -24,7 +24,7 @@ - + diff --git a/assets/js/2eb731bc.36c717d9.js b/assets/js/2eb731bc.36c717d9.js new file mode 100644 index 0000000000..d113645948 --- /dev/null +++ b/assets/js/2eb731bc.36c717d9.js @@ -0,0 +1 @@ +"use strict";(globalThis.webpackChunklangflow_docs=globalThis.webpackChunklangflow_docs||[]).push([[3536],{85202:(e,o,n)=>{n.r(o),n.d(o,{CH:()=>d,assets:()=>i,chCodeConfig:()=>p,contentTitle:()=>a,default:()=>u,frontMatter:()=>c,metadata:()=>t,toc:()=>h});const t=JSON.parse('{"id":"Develop/configuration-custom-database","title":"Configure an external PostgreSQL database","description":"Langflow\'s default database is SQLite, but you can configure Langflow to use PostgreSQL instead.","source":"@site/docs/Develop/configuration-custom-database.mdx","sourceDirName":"Develop","slug":"/configuration-custom-database","permalink":"/configuration-custom-database","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Configure an external PostgreSQL database","slug":"/configuration-custom-database"},"sidebar":"docs","previous":{"title":"Use Session IDs","permalink":"/session-id"},"next":{"title":"Database guide for enterprise administrators","permalink":"/enterprise-database-guide"}}');var s=n(74848),r=n(28453),l=n(24754);const c={title:"Configure an external PostgreSQL database",slug:"/configuration-custom-database"},a=void 0,i={},d={annotations:l.hk,Code:l.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},h=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Connect Langflow to a local PostgreSQL database",id:"connect-langflow-to-a-local-postgresql-database",level:2},{value:"Deploy Langflow and PostgreSQL containers with docker-compose.yml",id:"deploy-langflow-and-postgresql-containers-with-docker-composeyml",level:2},{value:"Deploy multiple Langflow instances with a shared PostgreSQL database",id:"deploy-multiple-langflow-instances-with-a-shared-postgresql-database",level:2},{value:"See also",id:"see-also",level:2}];function g(e){const o={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return d||f("CH",!1),d.Code||f("CH.Code",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n",(0,s.jsxs)(o.p,{children:["Langflow's default database is ",(0,s.jsx)(o.a,{href:"https://www.sqlite.org/docs.html",children:"SQLite"}),", but you can configure Langflow to use PostgreSQL instead."]}),"\n",(0,s.jsxs)(o.p,{children:["This guide walks you through setting up an external database for Langflow by replacing the default SQLite connection string ",(0,s.jsx)(o.code,{children:"sqlite:///./langflow.db"})," with PostgreSQL, both in local and containerized environments."]}),"\n",(0,s.jsx)(o.p,{children:"In this configuration, all structured application data from Langflow, including flows, message history, and logs, is instead managed by PostgreSQL.\nPostgreSQL is better suited for production environments due to its robust support for concurrent users, advanced data integrity features, and scalability.\nLangflow can more efficiently handle multiple users and larger workloads by using PostgreSQL as the database."}),"\n",(0,s.jsx)(o.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsxs)(o.li,{children:["A ",(0,s.jsx)(o.a,{href:"https://www.pgadmin.org/download/",children:"PostgreSQL"})," database"]}),"\n"]}),"\n",(0,s.jsx)(o.h2,{id:"connect-langflow-to-a-local-postgresql-database",children:"Connect Langflow to a local PostgreSQL database"}),"\n",(0,s.jsxs)(o.ol,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["If Langflow is running, stop Langflow with ",(0,s.jsx)("kbd",{children:"Ctrl+C"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Find your PostgreSQL database's connection string in the format ",(0,s.jsx)(o.code,{children:"postgresql://user:password@host:port/dbname"}),"."]}),"\n",(0,s.jsx)(o.p,{children:"The hostname in your connection string depends on how you're running PostgreSQL:"}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsxs)(o.li,{children:["If you're running PostgreSQL directly on your machine, use ",(0,s.jsx)(o.code,{children:"localhost"}),"."]}),"\n",(0,s.jsxs)(o.li,{children:["If you're running PostgreSQL in Docker Compose, use the service name, such as ",(0,s.jsx)(o.code,{children:"postgres"}),"."]}),"\n",(0,s.jsxs)(o.li,{children:["If you're running PostgreSQL in a separate Docker container with ",(0,s.jsx)(o.code,{children:"docker run"}),", use the container's IP address or network alias."]}),"\n",(0,s.jsx)(o.li,{children:"If you're running a cloud-hosted PostgreSQL, your provider will share your connection string, which includes a username and password."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Edit or create a Langflow ",(0,s.jsx)(o.code,{children:".env"})," file:"]}),"\n",(0,s.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"touch .env",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["You can use the ",(0,s.jsx)(o.a,{href:"https://github.com/langflow-ai/langflow/blob/main/.env.example",children:(0,s.jsx)(o.code,{children:".env.example"})})," file in the Langflow repository as a template for your own ",(0,s.jsx)(o.code,{children:".env"})," file."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["In your ",(0,s.jsx)(o.code,{children:".env"})," file, set ",(0,s.jsx)(o.code,{children:"LANGFLOW_DATABASE_URL"})," to your PostgreSQL connection string:"]}),"\n",(0,s.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'LANGFLOW_DATABASE_URL="postgresql://user:password@localhost:5432/dbname"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["Langflow uses ",(0,s.jsx)(o.a,{href:"https://www.sqlalchemy.org/",children:"SQLAlchemy"})," with the ",(0,s.jsx)(o.a,{href:"https://www.psycopg.org/",children:"psycopg"})," driver to pass SSL parameters directly to the PostgreSQL connection."]}),"\n",(0,s.jsx)(o.admonition,{title:"PostgreSQL driver compatibility",type:"warning",children:(0,s.jsxs)(o.p,{children:["Langflow requires ",(0,s.jsx)(o.code,{children:"psycopg2-binary"})," or ",(0,s.jsx)(o.code,{children:"psycopg[binary]"})," as the PostgreSQL driver. The ",(0,s.jsx)(o.code,{children:"asyncpg"})," driver is not compatible with Langflow's current database schema due to stricter timezone handling requirements."]})}),"\n",(0,s.jsx)(o.p,{children:"The following SSL modes are supported:"}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:[(0,s.jsx)(o.strong,{children:(0,s.jsx)(o.code,{children:"sslmode=require"})}),": Requires SSL connection but doesn't verify server certificate. This option is the least secure, but acceptable for most use cases."]}),"\n",(0,s.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_DATABASE_URL",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"postgresql://user:password@localhost:5432/dbname?sslmode=require"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:[(0,s.jsx)(o.strong,{children:(0,s.jsx)(o.code,{children:"sslmode=verify-ca"})}),": Requires SSL and verifies the server certificate against the Certificate Authority (CA). Add the certificate paths to your connection string:"]}),"\n",(0,s.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_DATABASE_URL",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"postgresql://user@localhost:5432/dbname?sslmode=verify-ca&sslcert=/path/to/client.crt&sslkey=/path/to/client.key&sslrootcert=/path/to/ca.crt"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:[(0,s.jsx)(o.strong,{children:(0,s.jsx)(o.code,{children:"sslmode=verify-full"})}),": Requires SSL, verifies the server certificate, and checks the request hostname against the certificate hostname. The ",(0,s.jsx)(o.code,{children:"db.example.com"})," hostname in this example must match the server certificate's CN. This option is the most secure."]}),"\n",(0,s.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_DATABASE_URL",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"postgresql://user@db.example.com:5432/dbname?sslmode=verify-full&sslcert=/path/to/client.crt&sslkey=/path/to/client.key&sslrootcert=/path/to/ca.crt"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["Do not use the Langflow environment variables ",(0,s.jsx)(o.a,{href:"/environment-variables#server",children:(0,s.jsx)(o.code,{children:"LANGFLOW_SSL_CERT_FILE"})})," and ",(0,s.jsx)(o.a,{href:"/environment-variables#server",children:(0,s.jsx)(o.code,{children:"LANGFLOW_SSL_KEY_FILE"})})," for your PostgreSQL certificates: these variables are for enabling HTTPS on the Langflow server, not for PostgreSQL database connections."]}),"\n",(0,s.jsxs)(o.p,{children:["For more on managing SSL certificates in PostgreSQL, see the ",(0,s.jsx)(o.a,{href:"https://www.postgresql.org/docs/9.1/ssl-tcp.html",children:"PostgreSQL documentation"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Save your changes, and then start Langflow with your ",(0,s.jsx)(o.code,{children:".env"})," file:"]}),"\n",(0,s.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"run langflow run ",props:{style:{color:"#A5D6FF"}}},{content:"--env-file ",props:{style:{color:"#79C0FF"}}},{content:".env",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["For optional connection pooling and timeout settings, see ",(0,s.jsx)(o.a,{href:"/memory#configure-external-memory",children:"Configure external memory"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsx)(o.p,{children:"In Langflow, run any flow to create traffic."}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsx)(o.p,{children:"Inspect your PostgreSQL database's tables and activity to verify that new tables and traffic were created after you ran a flow."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(o.h2,{id:"deploy-langflow-and-postgresql-containers-with-docker-composeyml",children:"Deploy Langflow and PostgreSQL containers with docker-compose.yml"}),"\n",(0,s.jsxs)(o.p,{children:["Launching Langflow and PostgreSQL containers in the same Docker network ensures proper connectivity between services.\nFor an example, see the ",(0,s.jsx)(o.a,{href:"https://github.com/langflow-ai/langflow/blob/main/docker_example/docker-compose.yml",children:(0,s.jsx)(o.code,{children:"docker-compose.yml"})})," file in the Langflow repository."]}),"\n",(0,s.jsxs)(o.p,{children:["The configuration in the example ",(0,s.jsx)(o.code,{children:"docker-compose.yml"})," also sets up persistent volumes for both Langflow and PostgreSQL data.\nPersistent volumes map directories inside of containers to storage on the host machine, so data persists through container restarts."]}),"\n",(0,s.jsxs)(o.p,{children:["Docker Compose creates an isolated network for all services defined in ",(0,s.jsx)(o.code,{children:"docker-compose.yml"}),". This ensures that the services can communicate with each other using their service names as hostnames, such as ",(0,s.jsx)(o.code,{children:"postgres"})," in the database URL.\nIn contrast, if you run PostgreSQL separately with ",(0,s.jsx)(o.code,{children:"docker run"}),", it launches in a different network than the Langflow container, and this prevents Langflow from connecting to PostgreSQL using the service name."]}),"\n",(0,s.jsxs)(o.p,{children:["To start the Langflow and PostgreSQL services with the example Docker Compose file, navigate to the ",(0,s.jsx)(o.code,{children:"langflow/docker_example"})," directory, and then run ",(0,s.jsx)(o.code,{children:"docker-compose up"}),".\nIf you're using a different ",(0,s.jsx)(o.code,{children:"docker-compose.yml"})," file, run the ",(0,s.jsx)(o.code,{children:"docker-compose up"})," command from the same directory as your ",(0,s.jsx)(o.code,{children:"docker-compose.yml"})," file."]}),"\n",(0,s.jsx)(o.h2,{id:"deploy-multiple-langflow-instances-with-a-shared-postgresql-database",children:"Deploy multiple Langflow instances with a shared PostgreSQL database"}),"\n",(0,s.jsxs)(o.p,{children:["To configure multiple Langflow instances that share the same PostgreSQL database, modify your ",(0,s.jsx)(o.code,{children:"docker-compose.yml"})," file to include multiple Langflow services."]}),"\n",(0,s.jsxs)(o.p,{children:["This example populates the values in ",(0,s.jsx)(o.code,{children:"docker-compose.yml"})," with values from your Langflow ",(0,s.jsx)(o.code,{children:".env"})," file.\nThis approach means you only have to manage deployment variables in one file, instead of copying values across multiple files."]}),"\n",(0,s.jsxs)(o.ol,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Update your ",(0,s.jsx)(o.code,{children:".env"})," file with values for your PostgreSQL database:"]}),"\n",(0,s.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"POSTGRES_USER=langflow",props:{}}]},{tokens:[{content:"POSTGRES_PASSWORD=your_secure_password",props:{}}]},{tokens:[{content:"POSTGRES_DB=langflow",props:{}}]},{tokens:[{content:"POSTGRES_HOST=postgres",props:{}}]},{tokens:[{content:"POSTGRES_PORT=5432",props:{}}]},{tokens:[{content:"LANGFLOW_CONFIG_DIR=app/langflow",props:{}}]},{tokens:[{content:"LANGFLOW_PORT_1=7860",props:{}}]},{tokens:[{content:"LANGFLOW_PORT_2=7861",props:{}}]},{tokens:[{content:"LANGFLOW_HOST=0.0.0.0",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["For optional connection pooling and timeout settings, see ",(0,s.jsx)(o.a,{href:"/memory#configure-external-memory",children:"Configure external memory"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Reference these variables in your ",(0,s.jsx)(o.code,{children:"docker-compose.yml"}),".\nFor example:"]}),"\n",(0,s.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"services",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" postgres",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" image",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"postgres:16",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" environment",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"POSTGRES_USER=${POSTGRES_USER}",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"POSTGRES_PASSWORD=${POSTGRES_PASSWORD}",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"POSTGRES_DB=${POSTGRES_DB}",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ports",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:'"${POSTGRES_PORT}:5432"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" volumes",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"langflow-postgres:/var/lib/postgresql/data",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" langflow-1",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" image",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"langflowai/langflow:latest",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" pull_policy",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"always",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ports",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:'"${LANGFLOW_PORT_1}:7860"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" depends_on",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"postgres",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" environment",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFLOW_DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFLOW_CONFIG_DIR=${LANGFLOW_CONFIG_DIR}",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFLOW_HOST=${LANGFLOW_HOST}",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"PORT=7860",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" volumes",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"langflow-data-1:/app/langflow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" langflow-2",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" image",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"langflowai/langflow:latest",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" pull_policy",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"always",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ports",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:'"${LANGFLOW_PORT_2}:7860"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" depends_on",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"postgres",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" environment",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFLOW_DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFLOW_CONFIG_DIR=${LANGFLOW_CONFIG_DIR}",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFLOW_HOST=${LANGFLOW_HOST}",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"PORT=7860",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" volumes",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"langflow-data-2:/app/langflow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"volumes",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" langflow-postgres",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" langflow-data-1",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" langflow-data-2",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]}],lang:"yaml"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Deploy the file with ",(0,s.jsx)(o.code,{children:"docker-compose up"}),".\nYou can access the first Langflow instance at ",(0,s.jsx)(o.code,{children:"http://localhost:7860"}),", and the second Langflow instance at ",(0,s.jsx)(o.code,{children:"http://localhost:7861"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["To confirm both instances are using the same database, run the ",(0,s.jsx)(o.code,{children:"docker exec"})," command to start ",(0,s.jsx)(o.code,{children:"psql"})," in your PostgreSQL container.\nYour container name may vary."]}),"\n",(0,s.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"exec ",props:{style:{color:"#A5D6FF"}}},{content:"-it ",props:{style:{color:"#79C0FF"}}},{content:"docker-test-postgres-1 psql ",props:{style:{color:"#A5D6FF"}}},{content:"-U ",props:{style:{color:"#79C0FF"}}},{content:"langflow ",props:{style:{color:"#A5D6FF"}}},{content:"-d ",props:{style:{color:"#79C0FF"}}},{content:"langflow",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsx)(o.p,{children:"Query the database for active connections:"}),"\n",(0,s.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"# ",props:{style:{color:"#C9D1D9"}}},{content:"SELECT * FROM",props:{style:{color:"#FF7B72"}}},{content:" pg_stat_activity ",props:{style:{color:"#C9D1D9"}}},{content:"WHERE",props:{style:{color:"#FF7B72"}}},{content:" datname ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"'langflow'",props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]}],lang:"sql"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Examine the query results for multiple connections with different ",(0,s.jsx)(o.code,{children:"client_addr"})," values, for example ",(0,s.jsx)(o.code,{children:"172.21.0.3"})," and ",(0,s.jsx)(o.code,{children:"172.21.0.4"}),".\nSince each Langflow instance runs in its own container on the Docker network, using different incoming IP addresses confirms that both instances are actively connected to the PostgreSQL database."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["To quit ",(0,s.jsx)(o.code,{children:"psql"}),", type ",(0,s.jsx)(o.code,{children:"quit"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(o.h2,{id:"see-also",children:"See also"}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsx)(o.li,{children:(0,s.jsx)(o.a,{href:"/enterprise-database-guide",children:"Langflow database guide for enterprise DBAs"})}),"\n",(0,s.jsx)(o.li,{children:(0,s.jsx)(o.a,{href:"/memory",children:"Memory management options"})}),"\n",(0,s.jsx)(o.li,{children:(0,s.jsx)(o.a,{href:"/logging",children:"Logs"})}),"\n"]})]})}function u(e={}){const{wrapper:o}={...(0,r.R)(),...e.components};return o?(0,s.jsx)(o,{...e,children:(0,s.jsx)(g,{...e})}):g(e)}function f(e,o){throw new Error("Expected "+(o?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]); \ No newline at end of file diff --git a/assets/js/2eb731bc.e11d632a.js b/assets/js/2eb731bc.e11d632a.js deleted file mode 100644 index edb2b34897..0000000000 --- a/assets/js/2eb731bc.e11d632a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(globalThis.webpackChunklangflow_docs=globalThis.webpackChunklangflow_docs||[]).push([[3536],{85202:(e,o,n)=>{n.r(o),n.d(o,{CH:()=>p,assets:()=>i,chCodeConfig:()=>d,contentTitle:()=>a,default:()=>u,frontMatter:()=>c,metadata:()=>t,toc:()=>h});const t=JSON.parse('{"id":"Develop/configuration-custom-database","title":"Configure an external PostgreSQL database","description":"Langflow\'s default database is SQLite, but you can configure Langflow to use PostgreSQL instead.","source":"@site/docs/Develop/configuration-custom-database.mdx","sourceDirName":"Develop","slug":"/configuration-custom-database","permalink":"/configuration-custom-database","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Configure an external PostgreSQL database","slug":"/configuration-custom-database"},"sidebar":"docs","previous":{"title":"Use Session IDs","permalink":"/session-id"},"next":{"title":"Database guide for enterprise administrators","permalink":"/enterprise-database-guide"}}');var s=n(74848),r=n(28453),l=n(24754);const c={title:"Configure an external PostgreSQL database",slug:"/configuration-custom-database"},a=void 0,i={},p={annotations:l.hk,Code:l.Cy},d={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},h=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Connect Langflow to a local PostgreSQL database",id:"connect-langflow-to-a-local-postgresql-database",level:2},{value:"Deploy Langflow and PostgreSQL containers with docker-compose.yml",id:"deploy-langflow-and-postgresql-containers-with-docker-composeyml",level:2},{value:"Deploy multiple Langflow instances with a shared PostgreSQL database",id:"deploy-multiple-langflow-instances-with-a-shared-postgresql-database",level:2},{value:"See also",id:"see-also",level:2}];function g(e){const o={a:"a",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return p||f("CH",!1),p.Code||f("CH.Code",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n",(0,s.jsxs)(o.p,{children:["Langflow's default database is ",(0,s.jsx)(o.a,{href:"https://www.sqlite.org/docs.html",children:"SQLite"}),", but you can configure Langflow to use PostgreSQL instead."]}),"\n",(0,s.jsxs)(o.p,{children:["This guide walks you through setting up an external database for Langflow by replacing the default SQLite connection string ",(0,s.jsx)(o.code,{children:"sqlite:///./langflow.db"})," with PostgreSQL, both in local and containerized environments."]}),"\n",(0,s.jsx)(o.p,{children:"In this configuration, all structured application data from Langflow, including flows, message history, and logs, is instead managed by PostgreSQL.\nPostgreSQL is better suited for production environments due to its robust support for concurrent users, advanced data integrity features, and scalability.\nLangflow can more efficiently handle multiple users and larger workloads by using PostgreSQL as the database."}),"\n",(0,s.jsx)(o.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsxs)(o.li,{children:["A ",(0,s.jsx)(o.a,{href:"https://www.pgadmin.org/download/",children:"PostgreSQL"})," database"]}),"\n"]}),"\n",(0,s.jsx)(o.h2,{id:"connect-langflow-to-a-local-postgresql-database",children:"Connect Langflow to a local PostgreSQL database"}),"\n",(0,s.jsxs)(o.ol,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["If Langflow is running, stop Langflow with ",(0,s.jsx)("kbd",{children:"Ctrl+C"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Find your PostgreSQL database's connection string in the format ",(0,s.jsx)(o.code,{children:"postgresql://user:password@host:port/dbname"}),"."]}),"\n",(0,s.jsx)(o.p,{children:"The hostname in your connection string depends on how you're running PostgreSQL:"}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsxs)(o.li,{children:["If you're running PostgreSQL directly on your machine, use ",(0,s.jsx)(o.code,{children:"localhost"}),"."]}),"\n",(0,s.jsxs)(o.li,{children:["If you're running PostgreSQL in Docker Compose, use the service name, such as ",(0,s.jsx)(o.code,{children:"postgres"}),"."]}),"\n",(0,s.jsxs)(o.li,{children:["If you're running PostgreSQL in a separate Docker container with ",(0,s.jsx)(o.code,{children:"docker run"}),", use the container's IP address or network alias."]}),"\n",(0,s.jsx)(o.li,{children:"If you're running a cloud-hosted PostgreSQL, your provider will share your connection string, which includes a username and password."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Edit or create a Langflow ",(0,s.jsx)(o.code,{children:".env"})," file:"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"touch .env",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["You can use the ",(0,s.jsx)(o.a,{href:"https://github.com/langflow-ai/langflow/blob/main/.env.example",children:(0,s.jsx)(o.code,{children:".env.example"})})," file in the Langflow repository as a template for your own ",(0,s.jsx)(o.code,{children:".env"})," file."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["In your ",(0,s.jsx)(o.code,{children:".env"})," file, set ",(0,s.jsx)(o.code,{children:"LANGFLOW_DATABASE_URL"})," to your PostgreSQL connection string:"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'LANGFLOW_DATABASE_URL="postgresql://user:password@localhost:5432/dbname"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["Langflow uses ",(0,s.jsx)(o.a,{href:"https://www.sqlalchemy.org/",children:"SQLAlchemy"})," with the ",(0,s.jsx)(o.a,{href:"https://www.psycopg.org/",children:"psycopg"})," driver to pass SSL parameters directly to the PostgreSQL connection. The following SSL modes are supported:"]}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:[(0,s.jsx)(o.strong,{children:(0,s.jsx)(o.code,{children:"sslmode=require"})}),": Requires SSL connection but doesn't verify server certificate. This option is the least secure, but acceptable for most use cases."]}),"\n",(0,s.jsx)(p.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_DATABASE_URL",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"postgresql://user:password@localhost:5432/dbname?sslmode=require"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:[(0,s.jsx)(o.strong,{children:(0,s.jsx)(o.code,{children:"sslmode=verify-ca"})}),": Requires SSL and verifies the server certificate against the Certificate Authority (CA). Add the certificate paths to your connection string:"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_DATABASE_URL",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"postgresql://user@localhost:5432/dbname?sslmode=verify-ca&sslcert=/path/to/client.crt&sslkey=/path/to/client.key&sslrootcert=/path/to/ca.crt"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:[(0,s.jsx)(o.strong,{children:(0,s.jsx)(o.code,{children:"sslmode=verify-full"})}),": Requires SSL, verifies the server certificate, and checks the request hostname against the certificate hostname. The ",(0,s.jsx)(o.code,{children:"db.example.com"})," hostname in this example must match the server certificate's CN. This option is the most secure."]}),"\n",(0,s.jsx)(p.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_DATABASE_URL",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"postgresql://user@db.example.com:5432/dbname?sslmode=verify-full&sslcert=/path/to/client.crt&sslkey=/path/to/client.key&sslrootcert=/path/to/ca.crt"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["Do not use the Langflow environment variables ",(0,s.jsx)(o.a,{href:"/environment-variables#server",children:(0,s.jsx)(o.code,{children:"LANGFLOW_SSL_CERT_FILE"})})," and ",(0,s.jsx)(o.a,{href:"/environment-variables#server",children:(0,s.jsx)(o.code,{children:"LANGFLOW_SSL_KEY_FILE"})})," for your PostgreSQL certificates: these variables are for enabling HTTPS on the Langflow server, not for PostgreSQL database connections."]}),"\n",(0,s.jsxs)(o.p,{children:["For more on managing SSL certificates in PostgreSQL, see the ",(0,s.jsx)(o.a,{href:"https://www.postgresql.org/docs/9.1/ssl-tcp.html",children:"PostgreSQL documentation"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Save your changes, and then start Langflow with your ",(0,s.jsx)(o.code,{children:".env"})," file:"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"run langflow run ",props:{style:{color:"#A5D6FF"}}},{content:"--env-file ",props:{style:{color:"#79C0FF"}}},{content:".env",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["For optional connection pooling and timeout settings, see ",(0,s.jsx)(o.a,{href:"/memory#configure-external-memory",children:"Configure external memory"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsx)(o.p,{children:"In Langflow, run any flow to create traffic."}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsx)(o.p,{children:"Inspect your PostgreSQL database's tables and activity to verify that new tables and traffic were created after you ran a flow."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(o.h2,{id:"deploy-langflow-and-postgresql-containers-with-docker-composeyml",children:"Deploy Langflow and PostgreSQL containers with docker-compose.yml"}),"\n",(0,s.jsxs)(o.p,{children:["Launching Langflow and PostgreSQL containers in the same Docker network ensures proper connectivity between services.\nFor an example, see the ",(0,s.jsx)(o.a,{href:"https://github.com/langflow-ai/langflow/blob/main/docker_example/docker-compose.yml",children:(0,s.jsx)(o.code,{children:"docker-compose.yml"})})," file in the Langflow repository."]}),"\n",(0,s.jsxs)(o.p,{children:["The configuration in the example ",(0,s.jsx)(o.code,{children:"docker-compose.yml"})," also sets up persistent volumes for both Langflow and PostgreSQL data.\nPersistent volumes map directories inside of containers to storage on the host machine, so data persists through container restarts."]}),"\n",(0,s.jsxs)(o.p,{children:["Docker Compose creates an isolated network for all services defined in ",(0,s.jsx)(o.code,{children:"docker-compose.yml"}),". This ensures that the services can communicate with each other using their service names as hostnames, such as ",(0,s.jsx)(o.code,{children:"postgres"})," in the database URL.\nIn contrast, if you run PostgreSQL separately with ",(0,s.jsx)(o.code,{children:"docker run"}),", it launches in a different network than the Langflow container, and this prevents Langflow from connecting to PostgreSQL using the service name."]}),"\n",(0,s.jsxs)(o.p,{children:["To start the Langflow and PostgreSQL services with the example Docker Compose file, navigate to the ",(0,s.jsx)(o.code,{children:"langflow/docker_example"})," directory, and then run ",(0,s.jsx)(o.code,{children:"docker-compose up"}),".\nIf you're using a different ",(0,s.jsx)(o.code,{children:"docker-compose.yml"})," file, run the ",(0,s.jsx)(o.code,{children:"docker-compose up"})," command from the same directory as your ",(0,s.jsx)(o.code,{children:"docker-compose.yml"})," file."]}),"\n",(0,s.jsx)(o.h2,{id:"deploy-multiple-langflow-instances-with-a-shared-postgresql-database",children:"Deploy multiple Langflow instances with a shared PostgreSQL database"}),"\n",(0,s.jsxs)(o.p,{children:["To configure multiple Langflow instances that share the same PostgreSQL database, modify your ",(0,s.jsx)(o.code,{children:"docker-compose.yml"})," file to include multiple Langflow services."]}),"\n",(0,s.jsxs)(o.p,{children:["This example populates the values in ",(0,s.jsx)(o.code,{children:"docker-compose.yml"})," with values from your Langflow ",(0,s.jsx)(o.code,{children:".env"})," file.\nThis approach means you only have to manage deployment variables in one file, instead of copying values across multiple files."]}),"\n",(0,s.jsxs)(o.ol,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Update your ",(0,s.jsx)(o.code,{children:".env"})," file with values for your PostgreSQL database:"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"POSTGRES_USER=langflow",props:{}}]},{tokens:[{content:"POSTGRES_PASSWORD=your_secure_password",props:{}}]},{tokens:[{content:"POSTGRES_DB=langflow",props:{}}]},{tokens:[{content:"POSTGRES_HOST=postgres",props:{}}]},{tokens:[{content:"POSTGRES_PORT=5432",props:{}}]},{tokens:[{content:"LANGFLOW_CONFIG_DIR=app/langflow",props:{}}]},{tokens:[{content:"LANGFLOW_PORT_1=7860",props:{}}]},{tokens:[{content:"LANGFLOW_PORT_2=7861",props:{}}]},{tokens:[{content:"LANGFLOW_HOST=0.0.0.0",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["For optional connection pooling and timeout settings, see ",(0,s.jsx)(o.a,{href:"/memory#configure-external-memory",children:"Configure external memory"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Reference these variables in your ",(0,s.jsx)(o.code,{children:"docker-compose.yml"}),".\nFor example:"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"services",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" postgres",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" image",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"postgres:16",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" environment",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"POSTGRES_USER=${POSTGRES_USER}",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"POSTGRES_PASSWORD=${POSTGRES_PASSWORD}",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"POSTGRES_DB=${POSTGRES_DB}",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ports",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:'"${POSTGRES_PORT}:5432"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" volumes",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"langflow-postgres:/var/lib/postgresql/data",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" langflow-1",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" image",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"langflowai/langflow:latest",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" pull_policy",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"always",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ports",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:'"${LANGFLOW_PORT_1}:7860"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" depends_on",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"postgres",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" environment",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFLOW_DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFLOW_CONFIG_DIR=${LANGFLOW_CONFIG_DIR}",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFLOW_HOST=${LANGFLOW_HOST}",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"PORT=7860",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" volumes",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"langflow-data-1:/app/langflow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" langflow-2",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" image",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"langflowai/langflow:latest",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" pull_policy",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"always",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ports",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:'"${LANGFLOW_PORT_2}:7860"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" depends_on",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"postgres",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" environment",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFLOW_DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFLOW_CONFIG_DIR=${LANGFLOW_CONFIG_DIR}",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFLOW_HOST=${LANGFLOW_HOST}",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"PORT=7860",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" volumes",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"langflow-data-2:/app/langflow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"volumes",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" langflow-postgres",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" langflow-data-1",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" langflow-data-2",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]}],lang:"yaml"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Deploy the file with ",(0,s.jsx)(o.code,{children:"docker-compose up"}),".\nYou can access the first Langflow instance at ",(0,s.jsx)(o.code,{children:"http://localhost:7860"}),", and the second Langflow instance at ",(0,s.jsx)(o.code,{children:"http://localhost:7861"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["To confirm both instances are using the same database, run the ",(0,s.jsx)(o.code,{children:"docker exec"})," command to start ",(0,s.jsx)(o.code,{children:"psql"})," in your PostgreSQL container.\nYour container name may vary."]}),"\n",(0,s.jsx)(p.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"exec ",props:{style:{color:"#A5D6FF"}}},{content:"-it ",props:{style:{color:"#79C0FF"}}},{content:"docker-test-postgres-1 psql ",props:{style:{color:"#A5D6FF"}}},{content:"-U ",props:{style:{color:"#79C0FF"}}},{content:"langflow ",props:{style:{color:"#A5D6FF"}}},{content:"-d ",props:{style:{color:"#79C0FF"}}},{content:"langflow",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsx)(o.p,{children:"Query the database for active connections:"}),"\n",(0,s.jsx)(p.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"# ",props:{style:{color:"#C9D1D9"}}},{content:"SELECT * FROM",props:{style:{color:"#FF7B72"}}},{content:" pg_stat_activity ",props:{style:{color:"#C9D1D9"}}},{content:"WHERE",props:{style:{color:"#FF7B72"}}},{content:" datname ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"'langflow'",props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]}],lang:"sql"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Examine the query results for multiple connections with different ",(0,s.jsx)(o.code,{children:"client_addr"})," values, for example ",(0,s.jsx)(o.code,{children:"172.21.0.3"})," and ",(0,s.jsx)(o.code,{children:"172.21.0.4"}),".\nSince each Langflow instance runs in its own container on the Docker network, using different incoming IP addresses confirms that both instances are actively connected to the PostgreSQL database."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["To quit ",(0,s.jsx)(o.code,{children:"psql"}),", type ",(0,s.jsx)(o.code,{children:"quit"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(o.h2,{id:"see-also",children:"See also"}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsx)(o.li,{children:(0,s.jsx)(o.a,{href:"/enterprise-database-guide",children:"Langflow database guide for enterprise DBAs"})}),"\n",(0,s.jsx)(o.li,{children:(0,s.jsx)(o.a,{href:"/memory",children:"Memory management options"})}),"\n",(0,s.jsx)(o.li,{children:(0,s.jsx)(o.a,{href:"/logging",children:"Logs"})}),"\n"]})]})}function u(e={}){const{wrapper:o}={...(0,r.R)(),...e.components};return o?(0,s.jsx)(o,{...e,children:(0,s.jsx)(g,{...e})}):g(e)}function f(e,o){throw new Error("Expected "+(o?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]); \ No newline at end of file diff --git a/assets/js/e1a0f423.976a77d3.js b/assets/js/e1a0f423.976a77d3.js deleted file mode 100644 index 0b2e9eb73a..0000000000 --- a/assets/js/e1a0f423.976a77d3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(globalThis.webpackChunklangflow_docs=globalThis.webpackChunklangflow_docs||[]).push([[4341],{11470:(e,n,o)=>{o.d(n,{A:()=>k});var t=o(96540),s=o(18215),r=o(17559),i=o(23104),l=o(56347),a=o(205),c=o(57485),d=o(31682),u=o(70679);function h(e){return t.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,t.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function p(e){const{values:n,children:o}=e;return(0,t.useMemo)(()=>{const e=n??function(e){return h(e).map(({props:{value:e,label:n,attributes:o,default:t}})=>({value:e,label:n,attributes:o,default:t}))}(o);return function(e){const n=(0,d.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,o])}function g({value:e,tabValues:n}){return n.some(n=>n.value===e)}function f({queryString:e=!1,groupId:n}){const o=(0,l.W6)(),s=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,c.aZ)(s),(0,t.useCallback)(e=>{if(!s)return;const n=new URLSearchParams(o.location.search);n.set(s,e),o.replace({...o.location,search:n.toString()})},[s,o])]}function m(e){const{defaultValue:n,queryString:o=!1,groupId:s}=e,r=p(e),[i,l]=(0,t.useState)(()=>function({defaultValue:e,tabValues:n}){if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!g({value:e,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const o=n.find(e=>e.default)??n[0];if(!o)throw new Error("Unexpected error: 0 tabValues");return o.value}({defaultValue:n,tabValues:r})),[c,d]=f({queryString:o,groupId:s}),[h,m]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[o,s]=(0,u.Dv)(n);return[o,(0,t.useCallback)(e=>{n&&s.set(e)},[n,s])]}({groupId:s}),w=(()=>{const e=c??h;return g({value:e,tabValues:r})?e:null})();(0,a.A)(()=>{w&&l(w)},[w]);return{selectedValue:i,selectValue:(0,t.useCallback)(e=>{if(!g({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);l(e),d(e),m(e)},[d,m,r]),tabValues:r}}var w=o(92303);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var x=o(74848);function b({className:e,block:n,selectedValue:o,selectValue:t,tabValues:r}){const l=[],{blockElementScrollPositionUntilNextRender:a}=(0,i.a_)(),c=e=>{const n=e.currentTarget,s=l.indexOf(n),i=r[s].value;i!==o&&(a(n),t(i))},d=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const o=l.indexOf(e.currentTarget)+1;n=l[o]??l[0];break}case"ArrowLeft":{const o=l.indexOf(e.currentTarget)-1;n=l[o]??l[l.length-1];break}}n?.focus()};return(0,x.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":n},e),children:r.map(({value:e,label:n,attributes:t})=>(0,x.jsx)("li",{role:"tab",tabIndex:o===e?0:-1,"aria-selected":o===e,ref:e=>{l.push(e)},onKeyDown:d,onClick:c,...t,className:(0,s.A)("tabs__item",y.tabItem,t?.className,{"tabs__item--active":o===e}),children:n??e},e))})}function v({lazy:e,children:n,selectedValue:o}){const r=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=r.find(e=>e.props.value===o);return e?(0,t.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,x.jsx)("div",{className:"margin-top--md",children:r.map((e,n)=>(0,t.cloneElement)(e,{key:n,hidden:e.props.value!==o}))})}function j(e){const n=m(e);return(0,x.jsxs)("div",{className:(0,s.A)(r.G.tabs.container,"tabs-container",y.tabList),children:[(0,x.jsx)(b,{...n,...e}),(0,x.jsx)(v,{...n,...e})]})}function k(e){const n=(0,w.A)();return(0,x.jsx)(j,{...e,children:h(e.children)},String(n))}},19365:(e,n,o)=>{o.d(n,{A:()=>i});o(96540);var t=o(18215);const s={tabItem:"tabItem_Ymn6"};var r=o(74848);function i({children:e,hidden:n,className:o}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,t.A)(s.tabItem,o),hidden:n,children:e})}},91724:(e,n,o)=>{o.r(n),o.d(n,{CH:()=>p,assets:()=>h,chCodeConfig:()=>g,contentTitle:()=>u,default:()=>w,frontMatter:()=>d,metadata:()=>t,toc:()=>f});const t=JSON.parse('{"id":"Support/troubleshooting","title":"Troubleshoot Langflow","description":"This page provides troubleshooting advice for issues you might encounter when using Langflow or contributing to Langflow.","source":"@site/docs/Support/troubleshooting.mdx","sourceDirName":"Support","slug":"/troubleshoot","permalink":"/troubleshoot","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Troubleshoot Langflow","slug":"/troubleshoot"},"sidebar":"docs","previous":{"title":"Contribute templates","permalink":"/contributing-templates"},"next":{"title":"Get help and request enhancements","permalink":"/contributing-github-issues"}}');var s=o(74848),r=o(28453),i=o(24754),l=o(11470),a=o(19365),c=o(40619);const d={title:"Troubleshoot Langflow",slug:"/troubleshoot"},u=void 0,h={},p={annotations:i.hk,Code:i.Cy},g={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},f=[{value:"Missing components",id:"missing-components",level:2},{value:"No input in the Playground",id:"no-input-in-the-playground",level:2},{value:"Missing key, no key found, or invalid API key",id:"missing-key-no-key-found-or-invalid-api-key",level:2},{value:"Langflow installation issues",id:"langflow-installation-issues",level:2},{value:"Langflow installation freezes at pip dependency resolution",id:"langflow-installation-freezes-at-pip-dependency-resolution",level:3},{value:"Linux installation fails to build required package",id:"linux-installation-fails-to-build-required-package",level:3},{value:"Installation failure from webrtcvad package",id:"installation-failure-from-webrtcvad-package",level:3},{value:"Protocol buffers (protoc) required for Intel-based Macs",id:"protocol-buffers-protoc-required-for-intel-based-macs",level:3},{value:"C++ build tools required for Langflow Desktop on Windows",id:"c-build-tools-required-for-langflow-desktop-on-windows",level:3},{value:"Langflow startup issues",id:"langflow-startup-issues",level:2},{value:"No langflow.__main__ module",id:"no-langflow__main__-module",level:3},{value:"Langflow runTraceback",id:"langflow-runtraceback",level:3},{value:"Environment variables not available from terminal",id:"environment-variables-not-available-from-terminal",level:3},{value:"Access Langflow Desktop startup logs",id:"access-langflow-desktop-startup-logs",level:3},{value:"User not found or inactive when running multiple flows",id:"user-not-found-or-inactive-when-running-multiple-flows",level:3},{value:"Package is not installed",id:"package-is-not-installed",level:3},{value:"An API key must be passed as query or header",id:"an-api-key-must-be-passed-as-query-or-header",level:3},{value:"Langflow upgrade issues",id:"langflow-upgrade-issues",level:2},{value:"Something went wrong running migrations",id:"something-went-wrong-running-migrations",level:3},{value:"Langflow Desktop says it is running the latest version, but it is actually behind",id:"langflow-desktop-says-it-is-running-the-latest-version-but-it-is-actually-behind",level:3},{value:"422 error when freezing components after upgrading Pydantic/FastAPI dependencies",id:"422-error-when-freezing-components-after-upgrading-pydanticfastapi-dependencies",level:3},{value:"Langflow uninstall issues",id:"langflow-uninstall-issues",level:2},{value:"Dot directory isn't deleted when uninstalling Langflow Desktop on macOS",id:"dot-directory-isnt-deleted-when-uninstalling-langflow-desktop-on-macos",level:3},{value:"Langflow MCP issues",id:"mcp",level:2},{value:"Claude for Desktop doesn't use MCP server tools correctly",id:"claude-for-desktop-doesnt-use-mcp-server-tools-correctly",level:3},{value:"MCP browser-based flows don't open a browser on Windows",id:"mcp-browser-based-flows-dont-open-a-browser-on-windows",level:3},{value:""No tools or prompts connected" on MCP servers in mixed Windows/WSL environments",id:"no-tools-or-prompts-connected-on-mcp-servers-in-mixed-windowswsl-environments",level:3},{value:"Token length limit errors in Embedding Model components",id:"token-length-limit-errors-in-embedding-model-components",level:2},{value:"Document processing errors in Docker containers",id:"document-processing-errors-in-docker-containers",level:2},{value:"Custom components and integrations issues",id:"custom-components-and-integrations-issues",level:2},{value:"Custom components not appearing in the visual editor",id:"custom-components-not-appearing-in-the-visual-editor",level:3},{value:"See also",id:"see-also",level:2}];function m(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return p||y("CH",!1),p.Code||y("CH.Code",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,s.jsx)(n.p,{children:"This page provides troubleshooting advice for issues you might encounter when using Langflow or contributing to Langflow."}),"\n",(0,s.jsx)(n.h2,{id:"missing-components",children:"Missing components"}),"\n",(0,s.jsx)(n.p,{children:"As Langflow development continues, components are often recategorized or deprecated for better alignment or to prepare for new components."}),"\n",(0,s.jsxs)(n.p,{children:["If a component appears to be missing from the ",(0,s.jsx)(c.A,{name:"Component","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Core components"})," and menus, try the following:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(c.A,{name:"Search","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Search"})," for the component."]}),"\n",(0,s.jsxs)(n.li,{children:["Check other component categories and ",(0,s.jsx)(c.A,{name:"Blocks","aria-hidden":"true"})," ",(0,s.jsx)(n.a,{href:"/components-bundle-components",children:(0,s.jsx)(n.strong,{children:"Bundles"})}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Check ",(0,s.jsx)(n.a,{href:"/concepts-components#legacy-components",children:"legacy components"}),", which are hidden by default."]}),"\n",(0,s.jsxs)(n.li,{children:["Check the ",(0,s.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/releases/latest",children:"Changelog"})," for component changes in recent releases."]}),"\n",(0,s.jsx)(n.li,{children:"Make sure the component isn't already present in your flow if it is a single-use component."}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["If you still cannot locate the component, see ",(0,s.jsx)(n.a,{href:"/contributing-github-issues",children:"Langflow GitHub Issues and Discussions"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"no-input-in-the-playground",children:"No input in the Playground"}),"\n",(0,s.jsxs)(n.p,{children:["If there is no message input field in the ",(0,s.jsx)(n.strong,{children:"Playground"}),", make sure your flow has a ",(0,s.jsxs)(n.a,{href:"/chat-input-and-output",children:[(0,s.jsx)(n.strong,{children:"Chat Input"})," component"]})," that is connected, directly or indirectly, to the ",(0,s.jsx)(n.strong,{children:"Input"})," port of a ",(0,s.jsx)(n.strong,{children:"Language Model"})," or ",(0,s.jsx)(n.strong,{children:"Agent"})," component."]}),"\n",(0,s.jsxs)(n.p,{children:["Because the ",(0,s.jsx)(n.strong,{children:"Playground"})," is designed for flows that use an LLM in a query-and-response format, such as chatbots and agents, a flow must have ",(0,s.jsx)(n.strong,{children:"Chat Input"}),", ",(0,s.jsx)(n.strong,{children:"Language Model"}),"/",(0,s.jsx)(n.strong,{children:"Agent"}),", and ",(0,s.jsx)(n.strong,{children:"Chat Output"})," components to be fully supported by the ",(0,s.jsx)(n.strong,{children:"Playground"})," chat interface."]}),"\n",(0,s.jsxs)(n.p,{children:["For more information, see ",(0,s.jsx)(n.a,{href:"/concepts-playground",children:"Test flows in the Playground"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"missing-key-no-key-found-or-invalid-api-key",children:"Missing key, no key found, or invalid API key"}),"\n",(0,s.jsx)(n.p,{children:"If you get an API key error when running a flow, try the following:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["For all components that require credentials, make sure those components have a valid credential in the component's settings, such as the ",(0,s.jsx)(n.strong,{children:"API Key"})," field."]}),"\n",(0,s.jsxs)(n.li,{children:["If you store your credentials in ",(0,s.jsx)(n.a,{href:"/configuration-global-variables",children:"Langflow global variables"}),", make sure you selected the correct global variable and that the variable contains a valid credential."]}),"\n",(0,s.jsx)(n.li,{children:"Make sure the provided credentials are active, have the required permissions, and, if applicable, have sufficient funds in the account to execute the required action. For example, model providers require credits to use their LLMs."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"langflow-installation-issues",children:"Langflow installation issues"}),"\n",(0,s.jsx)(n.p,{children:"The following issues can occur when installing Langflow."}),"\n",(0,s.jsx)(n.h3,{id:"langflow-installation-freezes-at-pip-dependency-resolution",children:"Langflow installation freezes at pip dependency resolution"}),"\n",(0,s.jsxs)(n.p,{children:["Installing Langflow OSS with ",(0,s.jsx)(n.code,{children:"pip install langflow"})," slowly fails with this error message:"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pip is looking at multiple versions of <> to determine which version is compatible with other requirements. This could take a while.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(n.p,{children:["To work around this issue, install Langflow with ",(0,s.jsx)(n.code,{children:"uv"})," instead of ",(0,s.jsx)(n.code,{children:"pip"}),", as explained in ",(0,s.jsx)(n.a,{href:"/get-started-installation#install-and-run-the-langflow-oss-python-package",children:"Install and run the Langflow OSS Python package"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"linux-installation-fails-to-build-required-package",children:"Linux installation fails to build required package"}),"\n",(0,s.jsx)(n.p,{children:"When you try to install Langflow OSS on Linux, installation fails because of outdated or missing packages:"}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Resolved ",props:{style:{color:"#FFA657"}}},{content:"455 ",props:{style:{color:"#79C0FF"}}},{content:"packages in ",props:{style:{color:"#A5D6FF"}}},{content:"18.92s",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" \xd7 ",props:{style:{color:"#FFA657"}}},{content:"Failed to build `",props:{style:{color:"#A5D6FF"}}},{content:"webrtcvad",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#A5D6FF"}}},{content:"2.0.10",props:{style:{color:"#79C0FF"}}},{content:"`",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" \u251c\u2500\u25b6",props:{style:{color:"#FFA657"}}},{content:" The build backend returned an error",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" \u2570\u2500\u25b6",props:{style:{color:"#FFA657"}}},{content:" Call to `setuptools.build_meta:__legacy__.build_wheel` ",props:{style:{color:"#A5D6FF"}}},{content:"failed",props:{style:{color:"#FFA657"}}},{content:" (exit status: ",props:{style:{color:"#A5D6FF"}}},{content:"1",props:{style:{color:"#79C0FF"}}},{content:")",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(n.p,{children:"To resolve this error, install the required build dependencies, and then retry the Langflow installation:"}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"sudo ",props:{style:{color:"#FFA657"}}},{content:"apt-get update",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"sudo ",props:{style:{color:"#FFA657"}}},{content:"apt-get install build-essential python3-dev",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(n.p,{children:["If upgrading your packages doesn't fix the issue, install ",(0,s.jsx)(n.code,{children:"gcc"})," separately, and then retry the Langflow installation:"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"sudo ",props:{style:{color:"#FFA657"}}},{content:"apt-get install gcc",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(n.h3,{id:"installation-failure-from-webrtcvad-package",children:["Installation failure from ",(0,s.jsx)(n.code,{children:"webrtcvad"})," package"]}),"\n",(0,s.jsxs)(n.p,{children:["If you experience an error from the ",(0,s.jsx)(n.code,{children:"webrtcvad"})," package, run ",(0,s.jsx)(n.code,{children:"uv pip install webrtcvad-wheels"})," in your virtual environment, and then retry the Langflow installation."]}),"\n",(0,s.jsx)(n.h3,{id:"protocol-buffers-protoc-required-for-intel-based-macs",children:"Protocol buffers (protoc) required for Intel-based Macs"}),"\n",(0,s.jsxs)(n.p,{children:["If you're installing Langflow on an Intel-based Mac, you may encounter installation errors if Protocol Buffers Compiler (",(0,s.jsx)(n.code,{children:"protoc"}),") is not installed."]}),"\n",(0,s.jsx)(n.p,{children:"This requirement doesn't apply to Apple Silicon Macs on ARM64."}),"\n",(0,s.jsxs)(n.p,{children:["To resolve this issue, install ",(0,s.jsx)(n.code,{children:"protoc"})," using ",(0,s.jsx)(n.code,{children:"brew install protobuf"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["For more information, including alternative installation methods, see the ",(0,s.jsx)(n.a,{href:"https://protobuf.dev/installation/",children:"Protocol buffers installation documentation"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"c-build-tools-required-for-langflow-desktop-on-windows",children:"C++ build tools required for Langflow Desktop on Windows"}),"\n",(0,s.jsxs)(n.p,{children:["Microsoft Windows installations of Langflow Desktop require a C++ compiler that may not be present on your system. If you receive a ",(0,s.jsx)(n.code,{children:"C++ Build Tools Required!"})," error, follow the on-screen prompt to install Microsoft C++ Build Tools, or ",(0,s.jsx)(n.a,{href:"https://visualstudio.microsoft.com/downloads/",children:"install Microsoft Visual Studio"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"langflow-startup-issues",children:"Langflow startup issues"}),"\n",(0,s.jsx)(n.p,{children:"The following issues can occur when attempting to start Langflow."}),"\n",(0,s.jsxs)(n.h3,{id:"no-langflow__main__-module",children:["No ",(0,s.jsx)(n.code,{children:"langflow.__main__"})," module"]}),"\n",(0,s.jsxs)(n.p,{children:["When you try to run Langflow with the command ",(0,s.jsx)(n.code,{children:"langflow run"}),", you encounter the following error:"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:">",props:{style:{color:"#FF7B72"}}},{content:" No module named ",props:{style:{color:"#C9D1D9"}}},{content:"'langflow.__main__'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(n.p,{children:"To resolve this issue, try the following:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Run ",(0,s.jsx)(n.code,{children:"uv run langflow run"})," instead of ",(0,s.jsx)(n.code,{children:"langflow run"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["If that doesn't work, reinstall the latest Langflow version with ",(0,s.jsx)(n.code,{children:"uv pip install langflow -U"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["If that doesn't work, reinstall Langflow and its dependencies with ",(0,s.jsx)(n.code,{children:"uv pip install langflow --pre -U --force-reinstall"}),"."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"langflow-runtraceback",children:"Langflow runTraceback"}),"\n",(0,s.jsxs)(n.p,{children:["When you try to run Langflow using the command ",(0,s.jsx)(n.code,{children:"langflow run"}),", you encounter the following error:"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:">",props:{style:{color:"#FF7B72"}}},{content:" langflow runTraceback (",props:{style:{color:"#C9D1D9"}}},{content:"most ",props:{style:{color:"#FFA657"}}},{content:"recent call last",props:{style:{color:"#A5D6FF"}}},{content:"): File ",props:{style:{color:"#C9D1D9"}}},{content:'".../langflow"',props:{style:{color:"#A5D6FF"}}},{content:", line 5, ",props:{style:{color:"#C9D1D9"}}},{content:"in <",props:{style:{color:"#FF7B72"}}},{content:"module",props:{style:{color:"#C9D1D9"}}},{content:">",props:{style:{color:"#FF7B72"}}},{content:" from langflow.__main__ import mainModuleNotFoundError: No module named ",props:{style:{color:"#C9D1D9"}}},{content:"'langflow.__main__'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(n.p,{children:"There are two possible reasons for this error:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Multiple Langflow installations"}),": You installed Langflow using ",(0,s.jsx)(n.code,{children:"pip install langflow"})," but you already had a previous version of Langflow installed in your system. In this case, you might be running the wrong executable."]}),"\n",(0,s.jsxs)(n.p,{children:["To solve this issue, run the correct executable by running ",(0,s.jsx)(n.code,{children:"python -m langflow run"})," instead of ",(0,s.jsx)(n.code,{children:"langflow run"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["If that doesn't work, try uninstalling and reinstalling Langflow with ",(0,s.jsx)(n.code,{children:"uv pip install langflow --pre -U"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Version conflict during installation"}),": Some version conflicts might have occurred during the installation process. To resolve this issue, reinstall Langflow and its dependencies by running ",(0,s.jsx)(n.code,{children:"python -m pip install langflow --pre -U --force-reinstall"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"environment-variables-not-available-from-terminal",children:"Environment variables not available from terminal"}),"\n",(0,s.jsxs)(n.p,{children:["Environment variables set in your terminal aren't automatically available to GUI-based applications like Langflow Desktop when launched through the Finder or the Start Menu.\nTo set environment variables for Langflow Desktop, see ",(0,s.jsx)(n.a,{href:"/environment-variables#set-environment-variables-for-langflow-desktop",children:"Set environment variables for Langflow Desktop"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"access-langflow-desktop-startup-logs",children:"Access Langflow Desktop startup logs"}),"\n",(0,s.jsxs)(n.p,{children:["If you encounter issues with Langflow Desktop, you might need to ",(0,s.jsx)(n.a,{href:"/logging#desktop-logs",children:"access Langflow Desktop startup logs"})," for debugging."]}),"\n",(0,s.jsx)(n.h3,{id:"user-not-found-or-inactive-when-running-multiple-flows",children:"User not found or inactive when running multiple flows"}),"\n",(0,s.jsxs)(n.p,{children:["When running multiple local Langflow OSS instances on different ports, such as ",(0,s.jsx)(n.code,{children:"localhost:7860"})," and ",(0,s.jsx)(n.code,{children:"localhost:7861"}),", you might see authentication errors in the logs.\nFor example:"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[07/22/25 10:57:07] INFO 2025-07-22 10:57:07 - INFO - utils - User not found or inactive.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(n.p,{children:"To resolve this error, use separate browser instances or browser profiles to access each Langflow instance."}),"\n",(0,s.jsx)(n.h3,{id:"package-is-not-installed",children:"Package is not installed"}),"\n",(0,s.jsx)(n.p,{children:"In Langflow OSS, you can follow the error message's instructions to install the missing dependency."}),"\n",(0,s.jsxs)(n.p,{children:["To manage dependencies in Langflow Desktop, see ",(0,s.jsx)(n.a,{href:"/install-custom-dependencies#langflow-desktop",children:"Install custom dependencies in Langflow Desktop"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"an-api-key-must-be-passed-as-query-or-header",children:"An API key must be passed as query or header"}),"\n",(0,s.jsxs)(n.p,{children:["The following error can occur when attempting to sign up on the Langflow sign in page: ",(0,s.jsx)(n.code,{children:"An API key must be passed as query or header"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["This means that ",(0,s.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})," is set to ",(0,s.jsx)(n.code,{children:"false"}),", and only superusers can create and activate non-superuser accounts.\nTherefore, you are locked out of this Langflow instance."]}),"\n",(0,s.jsx)(n.p,{children:"If you aren't an administrator, then a superuser must create and activate a non-superuser account before you can sign in."}),"\n",(0,s.jsxs)(n.p,{children:["If you are the administrator, sign in with a superuser account, or restart Langflow with ",(0,s.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN=true"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["For more information, see ",(0,s.jsx)(n.a,{href:"/api-keys-and-authentication#start-a-langflow-server-with-authentication-enabled",children:"Start Langflow Server with authentication enabled"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"langflow-upgrade-issues",children:"Langflow upgrade issues"}),"\n",(0,s.jsx)(n.p,{children:"The following issues can occur when upgrading your Langflow version."}),"\n",(0,s.jsxs)(n.p,{children:["For information about managing Langflow versions, see ",(0,s.jsx)(n.a,{href:"/get-started-installation",children:"Install Langflow"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"something-went-wrong-running-migrations",children:"Something went wrong running migrations"}),"\n",(0,s.jsxs)(n.p,{children:["The following error can occur during Langflow upgrades when the new version can't override ",(0,s.jsx)(n.code,{children:"langflow-pre.db"})," in the Langflow cache folder:"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:">",props:{style:{color:"#FF7B72"}}},{content:" Something went wrong running migrations. Please, run ",props:{style:{color:"#C9D1D9"}}},{content:"'langflow migration --fix'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(n.p,{children:["To resolve this error, clear the cache by deleting the contents of your Langflow cache folder.\nThe filepath depends on your operating system, installation type, and configuration options.\nFor more information and default filepaths, see ",(0,s.jsx)(n.a,{href:"/memory",children:"Memory management options"}),"."]}),"\n",(0,s.jsx)(n.admonition,{type:"danger",children:(0,s.jsx)(n.p,{children:"Clearing the cache erases your settings.\nIf you want to retain your settings files, create a backup of those files before clearing the cache folder."})}),"\n",(0,s.jsx)(n.h3,{id:"langflow-desktop-says-it-is-running-the-latest-version-but-it-is-actually-behind",children:"Langflow Desktop says it is running the latest version, but it is actually behind"}),"\n",(0,s.jsx)(n.p,{children:"If you are running Langflow Desktop version 1.4.2 or earlier, the UI might incorrectly report that you are on the latest version when a newer version is available."}),"\n",(0,s.jsx)(n.p,{children:"This happens because the automatic update feature in the UI was introduced in version 1.4.2.\nEarlier versions can't automatically detect or apply updates."}),"\n",(0,s.jsxs)(n.p,{children:["To resolve this issue, uninstall Langflow Desktop, and then ",(0,s.jsx)(n.a,{href:"https://langflow.org/desktop",children:"download and install the latest version of Langflow Desktop"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"422-error-when-freezing-components-after-upgrading-pydanticfastapi-dependencies",children:"422 error when freezing components after upgrading Pydantic/FastAPI dependencies"}),"\n",(0,s.jsx)(n.p,{children:"If you locally upgrade your Pydantic and FastAPI dependencies, you may encounter a 422 error when trying to freeze components."}),"\n",(0,s.jsx)(n.p,{children:"This error occurs due to changes in how request bodies are handled in newer versions of these dependencies."}),"\n",(0,s.jsx)(n.p,{children:"If you're experiencing this issue, update your Langflow installation to version 1.6.5 or later, which includes a fix for this issue."}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"pip install langflow ",props:{style:{color:"#A5D6FF"}}},{content:"-U",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(n.h2,{id:"langflow-uninstall-issues",children:"Langflow uninstall issues"}),"\n",(0,s.jsx)(n.p,{children:"The following issues can occur when uninstalling Langflow."}),"\n",(0,s.jsx)(n.h3,{id:"dot-directory-isnt-deleted-when-uninstalling-langflow-desktop-on-macos",children:"Dot directory isn't deleted when uninstalling Langflow Desktop on macOS"}),"\n",(0,s.jsxs)(n.p,{children:["On macOS, uninstalling Langflow Desktop deletes the ",(0,s.jsx)(n.code,{children:".app"})," file but doesn't delete files in ",(0,s.jsx)(n.code,{children:"~/.langflow"}),", which includes files generated during usage like cache and settings."]}),"\n",(0,s.jsx)(n.p,{children:"If you reinstall Langflow Desktop, it starts with the existing data from the previous installation."}),"\n",(0,s.jsxs)(n.p,{children:["To fully remove a Langflow Desktop macOS installation, you must also delete ",(0,s.jsx)(n.code,{children:"~/.langflow"}),":"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"rm ",props:{style:{color:"#FFA657"}}},{content:"-rf ",props:{style:{color:"#79C0FF"}}},{content:".langflow",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(n.h2,{id:"mcp",children:"Langflow MCP issues"}),"\n",(0,s.jsx)(n.p,{children:"The following issues can occur when using Langflow as an MCP server or client."}),"\n",(0,s.jsx)(n.h3,{id:"claude-for-desktop-doesnt-use-mcp-server-tools-correctly",children:"Claude for Desktop doesn't use MCP server tools correctly"}),"\n",(0,s.jsxs)(n.p,{children:["If Claude for Desktop doesn't use your server's tools correctly, try explicitly defining the path to your local ",(0,s.jsx)(n.code,{children:"uvx"})," or ",(0,s.jsx)(n.code,{children:"npx"})," executable file in the ",(0,s.jsx)(n.code,{children:"claude_desktop_config.json"})," configuration file:"]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["To find your ",(0,s.jsx)(n.code,{children:"uvx"})," path, run ",(0,s.jsx)(n.code,{children:"which uvx"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["To find your ",(0,s.jsx)(n.code,{children:"npx"})," path, run ",(0,s.jsx)(n.code,{children:"which npx"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["In your ",(0,s.jsx)(n.code,{children:"claude_desktop_config.json"})," file, add the path to your Langflow MCP server configuration, as shown in the following examples."]}),"\n",(0,s.jsxs)(l.A,{children:[(0,s.jsx)(a.A,{value:"uvx",label:"uvx",default:!0,children:(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcpServers"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "PROJECT_NAME"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "command"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"PATH_TO_UVX"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "args"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcp-proxy"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/streamable"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})}),(0,s.jsx)(a.A,{value:"npx",label:"npx",children:(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcpServers"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "PROJECT_NAME"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "command"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"PATH_TO_NPX"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "args"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "-y"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "supergateway"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "--sse"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/streamable"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"mcp-browser-based-flows-dont-open-a-browser-on-windows",children:"MCP browser-based flows don't open a browser on Windows"}),"\n",(0,s.jsx)(n.p,{children:"This is a known issue when using MCP Tools with browser navigation actions, such as Playwright, on Windows: The agent can execute the tool successfully but the browser tab or window doesn't open."}),"\n",(0,s.jsx)(n.p,{children:"This issue occurs because the MCP server runs from a Python process, which prevents it from opening browser windows in WSL or Windows."}),"\n",(0,s.jsxs)(n.p,{children:["To work around this issue, use the standalone MCP server approach documented in the ",(0,s.jsx)(n.a,{href:"https://github.com/microsoft/playwright-mcp?tab=readme-ov-file#standalone-mcp-server",children:"Playwright MCP repository"}),".\nAfter the server is up and running, you can add it as an HTTP/SSE server in Langflow."]}),"\n",(0,s.jsx)(n.p,{children:"For other browser navigation tools, see the provider's documentation for specific troubleshooting guidance."}),"\n",(0,s.jsx)(n.h3,{id:"no-tools-or-prompts-connected-on-mcp-servers-in-mixed-windowswsl-environments",children:'"No tools or prompts connected" on MCP servers in mixed Windows/WSL environments'}),"\n",(0,s.jsx)(n.p,{children:'If you encounter "No tools or prompts connected" errors or connection failures when using Langflow Desktop as an MCP server with clients running in different environments, such as Langflow on a Windows host and an MCP client in WSL, this is due to network isolation between Windows and WSL environments.'}),"\n",(0,s.jsxs)(n.p,{children:["WSL cannot directly access Windows localhost services, and Langflow running on a Windows host is not accessible from WSL clients at ",(0,s.jsx)(n.code,{children:"localhost:7860"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"To work around this issue, run the server and host in the same operating environment."}),"\n",(0,s.jsxs)(n.p,{children:["Alternatively, configure Langflow Desktop to accept connections from WSL at the default Windows IP address of ",(0,s.jsx)(n.code,{children:"10.255.255.254:7860"})," instead of ",(0,s.jsx)(n.code,{children:"localhost"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"token-length-limit-errors-in-embedding-model-components",children:"Token length limit errors in Embedding Model components"}),"\n",(0,s.jsxs)(n.p,{children:["Token length errors can happen if your chunking strategy doesn't align with your embedding model's tokenization limits.\nFor more information, see ",(0,s.jsx)(n.a,{href:"/split-text#chunk-size",children:"Tokenization errors due to chunk size"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"document-processing-errors-in-docker-containers",children:"Document processing errors in Docker containers"}),"\n",(0,s.jsxs)(n.p,{children:["If you're running Langflow in a Docker container, you might encounter errors when using components that handle files or images, such as the ",(0,s.jsxs)(n.a,{href:"/read-file",children:[(0,s.jsx)(n.strong,{children:"Read File"})," component"]})," or ",(0,s.jsxs)(n.a,{href:"/bundles-docling",children:[(0,s.jsx)(n.strong,{children:"Docling"})," components"]}),". To resolve these errors, you might need to install additional system dependencies."]}),"\n",(0,s.jsx)(n.p,{children:"When running Langflow in a Linux-based Docker container, Docling requires system libraries that aren't included in the base Docker image. If you see errors related to document or image processing, add the following to your Dockerfile:"}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"RUN",props:{style:{color:"#FF7B72"}}},{content:" apt-get update && apt-get install -y libgl1 libglib2.0-0",props:{style:{color:"#C9D1D9"}}}]}],lang:"dockerfile"},annotations:[]}]}),"\n",(0,s.jsx)(n.p,{children:"These dependencies are required by Docling for document processing operations."}),"\n",(0,s.jsxs)(n.p,{children:["For more information about customizing Docker images, see ",(0,s.jsx)(n.a,{href:"/deployment-docker#customize-the-langflow-docker-image",children:"Customize the Langflow Docker image with your own code"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"custom-components-and-integrations-issues",children:"Custom components and integrations issues"}),"\n",(0,s.jsx)(n.p,{children:"For troubleshooting advice for a third-party integration, see the information about that integration in the Langflow documentation and the provider's documentation."}),"\n",(0,s.jsxs)(n.p,{children:["If you are building a custom component, see ",(0,s.jsx)(n.a,{href:"/components-custom-components#error-handling-and-logging",children:"Error handling and logging for custom Python components"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"custom-components-not-appearing-in-the-visual-editor",children:"Custom components not appearing in the visual editor"}),"\n",(0,s.jsx)(n.p,{children:"If your custom components are not appearing in the Langflow visual editor, try the following troubleshooting steps:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Ensure your components follow the ",(0,s.jsx)(n.a,{href:"https://docs.langflow.org/components-custom-components#directory-structure-requirements",children:"required directory structure"}),"."]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"/your/custom/components/path/ # Base directory set by LANGFLOW_COMPONENTS_PATH",props:{}}]},{tokens:[{content:" \u2514\u2500\u2500 category_name/ # Required category subfolder that determines menu name",props:{}}]},{tokens:[{content:" \u251c\u2500\u2500 __init__.py # Required",props:{}}]},{tokens:[{content:" \u2514\u2500\u2500 custom_component.py # Component file",props:{}}]}],lang:"text"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Verify each category directory includes an ",(0,s.jsx)(n.code,{children:"__init__.py"})," file.\nThis is required for Python to recognize the directory as a module."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Use the command line argument instead of the environment variable for ",(0,s.jsx)(n.code,{children:"LANGFLOW_COMPONENTS_PATH"}),".\nIf you're using the ",(0,s.jsx)(n.code,{children:"LANGFLOW_COMPONENTS_PATH"})," environment variable and components aren't loading, try the ",(0,s.jsx)(n.code,{children:"--components-path"})," command line argument instead:"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"run langflow run ",props:{style:{color:"#A5D6FF"}}},{content:"--components-path ",props:{style:{color:"#79C0FF"}}},{content:"/path/to/your/custom/components",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["If you continue to experience issues, please ",(0,s.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/issues",children:"report them on GitHub"})," with details about your directory structure and component setup."]}),"\n",(0,s.jsx)(n.h2,{id:"see-also",children:"See also"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"/contributing-github-issues",children:"Langflow GitHub Issues and Discussions"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"/contributing-telemetry",children:"Langflow telemetry"})}),"\n"]})]})}function w(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(m,{...e})}):m(e)}function y(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]); \ No newline at end of file diff --git a/assets/js/e1a0f423.e36fdbdb.js b/assets/js/e1a0f423.e36fdbdb.js new file mode 100644 index 0000000000..64b6a1dc3f --- /dev/null +++ b/assets/js/e1a0f423.e36fdbdb.js @@ -0,0 +1 @@ +"use strict";(globalThis.webpackChunklangflow_docs=globalThis.webpackChunklangflow_docs||[]).push([[4341],{11470:(e,n,o)=>{o.d(n,{A:()=>k});var t=o(96540),s=o(18215),r=o(17559),i=o(23104),l=o(56347),a=o(205),c=o(57485),d=o(31682),u=o(70679);function h(e){return t.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,t.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function p(e){const{values:n,children:o}=e;return(0,t.useMemo)(()=>{const e=n??function(e){return h(e).map(({props:{value:e,label:n,attributes:o,default:t}})=>({value:e,label:n,attributes:o,default:t}))}(o);return function(e){const n=(0,d.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,o])}function g({value:e,tabValues:n}){return n.some(n=>n.value===e)}function f({queryString:e=!1,groupId:n}){const o=(0,l.W6)(),s=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,c.aZ)(s),(0,t.useCallback)(e=>{if(!s)return;const n=new URLSearchParams(o.location.search);n.set(s,e),o.replace({...o.location,search:n.toString()})},[s,o])]}function m(e){const{defaultValue:n,queryString:o=!1,groupId:s}=e,r=p(e),[i,l]=(0,t.useState)(()=>function({defaultValue:e,tabValues:n}){if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!g({value:e,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const o=n.find(e=>e.default)??n[0];if(!o)throw new Error("Unexpected error: 0 tabValues");return o.value}({defaultValue:n,tabValues:r})),[c,d]=f({queryString:o,groupId:s}),[h,m]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[o,s]=(0,u.Dv)(n);return[o,(0,t.useCallback)(e=>{n&&s.set(e)},[n,s])]}({groupId:s}),w=(()=>{const e=c??h;return g({value:e,tabValues:r})?e:null})();(0,a.A)(()=>{w&&l(w)},[w]);return{selectedValue:i,selectValue:(0,t.useCallback)(e=>{if(!g({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);l(e),d(e),m(e)},[d,m,r]),tabValues:r}}var w=o(92303);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var x=o(74848);function b({className:e,block:n,selectedValue:o,selectValue:t,tabValues:r}){const l=[],{blockElementScrollPositionUntilNextRender:a}=(0,i.a_)(),c=e=>{const n=e.currentTarget,s=l.indexOf(n),i=r[s].value;i!==o&&(a(n),t(i))},d=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const o=l.indexOf(e.currentTarget)+1;n=l[o]??l[0];break}case"ArrowLeft":{const o=l.indexOf(e.currentTarget)-1;n=l[o]??l[l.length-1];break}}n?.focus()};return(0,x.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":n},e),children:r.map(({value:e,label:n,attributes:t})=>(0,x.jsx)("li",{role:"tab",tabIndex:o===e?0:-1,"aria-selected":o===e,ref:e=>{l.push(e)},onKeyDown:d,onClick:c,...t,className:(0,s.A)("tabs__item",y.tabItem,t?.className,{"tabs__item--active":o===e}),children:n??e},e))})}function v({lazy:e,children:n,selectedValue:o}){const r=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=r.find(e=>e.props.value===o);return e?(0,t.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,x.jsx)("div",{className:"margin-top--md",children:r.map((e,n)=>(0,t.cloneElement)(e,{key:n,hidden:e.props.value!==o}))})}function j(e){const n=m(e);return(0,x.jsxs)("div",{className:(0,s.A)(r.G.tabs.container,"tabs-container",y.tabList),children:[(0,x.jsx)(b,{...n,...e}),(0,x.jsx)(v,{...n,...e})]})}function k(e){const n=(0,w.A)();return(0,x.jsx)(j,{...e,children:h(e.children)},String(n))}},19365:(e,n,o)=>{o.d(n,{A:()=>i});o(96540);var t=o(18215);const s={tabItem:"tabItem_Ymn6"};var r=o(74848);function i({children:e,hidden:n,className:o}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,t.A)(s.tabItem,o),hidden:n,children:e})}},91724:(e,n,o)=>{o.r(n),o.d(n,{CH:()=>p,assets:()=>h,chCodeConfig:()=>g,contentTitle:()=>u,default:()=>w,frontMatter:()=>d,metadata:()=>t,toc:()=>f});const t=JSON.parse('{"id":"Support/troubleshooting","title":"Troubleshoot Langflow","description":"This page provides troubleshooting advice for issues you might encounter when using Langflow or contributing to Langflow.","source":"@site/docs/Support/troubleshooting.mdx","sourceDirName":"Support","slug":"/troubleshoot","permalink":"/troubleshoot","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Troubleshoot Langflow","slug":"/troubleshoot"},"sidebar":"docs","previous":{"title":"Contribute templates","permalink":"/contributing-templates"},"next":{"title":"Get help and request enhancements","permalink":"/contributing-github-issues"}}');var s=o(74848),r=o(28453),i=o(24754),l=o(11470),a=o(19365),c=o(40619);const d={title:"Troubleshoot Langflow",slug:"/troubleshoot"},u=void 0,h={},p={annotations:i.hk,Code:i.Cy},g={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},f=[{value:"Missing components",id:"missing-components",level:2},{value:"No input in the Playground",id:"no-input-in-the-playground",level:2},{value:"Missing key, no key found, or invalid API key",id:"missing-key-no-key-found-or-invalid-api-key",level:2},{value:"Langflow installation issues",id:"langflow-installation-issues",level:2},{value:"Langflow installation freezes at pip dependency resolution",id:"langflow-installation-freezes-at-pip-dependency-resolution",level:3},{value:"Linux installation fails to build required package",id:"linux-installation-fails-to-build-required-package",level:3},{value:"Installation failure from webrtcvad package",id:"installation-failure-from-webrtcvad-package",level:3},{value:"Protocol buffers (protoc) required for Intel-based Macs",id:"protocol-buffers-protoc-required-for-intel-based-macs",level:3},{value:"C++ build tools required for Langflow Desktop on Windows",id:"c-build-tools-required-for-langflow-desktop-on-windows",level:3},{value:"Langflow startup issues",id:"langflow-startup-issues",level:2},{value:"No langflow.__main__ module",id:"no-langflow__main__-module",level:3},{value:"Langflow runTraceback",id:"langflow-runtraceback",level:3},{value:"Environment variables not available from terminal",id:"environment-variables-not-available-from-terminal",level:3},{value:"Access Langflow Desktop startup logs",id:"access-langflow-desktop-startup-logs",level:3},{value:"User not found or inactive when running multiple flows",id:"user-not-found-or-inactive-when-running-multiple-flows",level:3},{value:"Package is not installed",id:"package-is-not-installed",level:3},{value:"PostgreSQL asyncpg driver compatibility issue",id:"postgresql-asyncpg-driver-compatibility-issue",level:3},{value:"An API key must be passed as query or header",id:"an-api-key-must-be-passed-as-query-or-header",level:3},{value:"Langflow upgrade issues",id:"langflow-upgrade-issues",level:2},{value:"Something went wrong running migrations",id:"something-went-wrong-running-migrations",level:3},{value:"Langflow Desktop says it is running the latest version, but it is actually behind",id:"langflow-desktop-says-it-is-running-the-latest-version-but-it-is-actually-behind",level:3},{value:"422 error when freezing components after upgrading Pydantic/FastAPI dependencies",id:"422-error-when-freezing-components-after-upgrading-pydanticfastapi-dependencies",level:3},{value:"Langflow uninstall issues",id:"langflow-uninstall-issues",level:2},{value:"Dot directory isn't deleted when uninstalling Langflow Desktop on macOS",id:"dot-directory-isnt-deleted-when-uninstalling-langflow-desktop-on-macos",level:3},{value:"Langflow MCP issues",id:"mcp",level:2},{value:"Claude for Desktop doesn't use MCP server tools correctly",id:"claude-for-desktop-doesnt-use-mcp-server-tools-correctly",level:3},{value:"MCP browser-based flows don't open a browser on Windows",id:"mcp-browser-based-flows-dont-open-a-browser-on-windows",level:3},{value:""No tools or prompts connected" on MCP servers in mixed Windows/WSL environments",id:"no-tools-or-prompts-connected-on-mcp-servers-in-mixed-windowswsl-environments",level:3},{value:"Token length limit errors in Embedding Model components",id:"token-length-limit-errors-in-embedding-model-components",level:2},{value:"Document processing errors in Docker containers",id:"document-processing-errors-in-docker-containers",level:2},{value:"Custom components and integrations issues",id:"custom-components-and-integrations-issues",level:2},{value:"Custom components not appearing in the visual editor",id:"custom-components-not-appearing-in-the-visual-editor",level:3},{value:"See also",id:"see-also",level:2}];function m(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return p||y("CH",!1),p.Code||y("CH.Code",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,s.jsx)(n.p,{children:"This page provides troubleshooting advice for issues you might encounter when using Langflow or contributing to Langflow."}),"\n",(0,s.jsx)(n.h2,{id:"missing-components",children:"Missing components"}),"\n",(0,s.jsx)(n.p,{children:"As Langflow development continues, components are often recategorized or deprecated for better alignment or to prepare for new components."}),"\n",(0,s.jsxs)(n.p,{children:["If a component appears to be missing from the ",(0,s.jsx)(c.A,{name:"Component","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Core components"})," and menus, try the following:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(c.A,{name:"Search","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Search"})," for the component."]}),"\n",(0,s.jsxs)(n.li,{children:["Check other component categories and ",(0,s.jsx)(c.A,{name:"Blocks","aria-hidden":"true"})," ",(0,s.jsx)(n.a,{href:"/components-bundle-components",children:(0,s.jsx)(n.strong,{children:"Bundles"})}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Check ",(0,s.jsx)(n.a,{href:"/concepts-components#legacy-components",children:"legacy components"}),", which are hidden by default."]}),"\n",(0,s.jsxs)(n.li,{children:["Check the ",(0,s.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/releases/latest",children:"Changelog"})," for component changes in recent releases."]}),"\n",(0,s.jsx)(n.li,{children:"Make sure the component isn't already present in your flow if it is a single-use component."}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["If you still cannot locate the component, see ",(0,s.jsx)(n.a,{href:"/contributing-github-issues",children:"Langflow GitHub Issues and Discussions"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"no-input-in-the-playground",children:"No input in the Playground"}),"\n",(0,s.jsxs)(n.p,{children:["If there is no message input field in the ",(0,s.jsx)(n.strong,{children:"Playground"}),", make sure your flow has a ",(0,s.jsxs)(n.a,{href:"/chat-input-and-output",children:[(0,s.jsx)(n.strong,{children:"Chat Input"})," component"]})," that is connected, directly or indirectly, to the ",(0,s.jsx)(n.strong,{children:"Input"})," port of a ",(0,s.jsx)(n.strong,{children:"Language Model"})," or ",(0,s.jsx)(n.strong,{children:"Agent"})," component."]}),"\n",(0,s.jsxs)(n.p,{children:["Because the ",(0,s.jsx)(n.strong,{children:"Playground"})," is designed for flows that use an LLM in a query-and-response format, such as chatbots and agents, a flow must have ",(0,s.jsx)(n.strong,{children:"Chat Input"}),", ",(0,s.jsx)(n.strong,{children:"Language Model"}),"/",(0,s.jsx)(n.strong,{children:"Agent"}),", and ",(0,s.jsx)(n.strong,{children:"Chat Output"})," components to be fully supported by the ",(0,s.jsx)(n.strong,{children:"Playground"})," chat interface."]}),"\n",(0,s.jsxs)(n.p,{children:["For more information, see ",(0,s.jsx)(n.a,{href:"/concepts-playground",children:"Test flows in the Playground"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"missing-key-no-key-found-or-invalid-api-key",children:"Missing key, no key found, or invalid API key"}),"\n",(0,s.jsx)(n.p,{children:"If you get an API key error when running a flow, try the following:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["For all components that require credentials, make sure those components have a valid credential in the component's settings, such as the ",(0,s.jsx)(n.strong,{children:"API Key"})," field."]}),"\n",(0,s.jsxs)(n.li,{children:["If you store your credentials in ",(0,s.jsx)(n.a,{href:"/configuration-global-variables",children:"Langflow global variables"}),", make sure you selected the correct global variable and that the variable contains a valid credential."]}),"\n",(0,s.jsx)(n.li,{children:"Make sure the provided credentials are active, have the required permissions, and, if applicable, have sufficient funds in the account to execute the required action. For example, model providers require credits to use their LLMs."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"langflow-installation-issues",children:"Langflow installation issues"}),"\n",(0,s.jsx)(n.p,{children:"The following issues can occur when installing Langflow."}),"\n",(0,s.jsx)(n.h3,{id:"langflow-installation-freezes-at-pip-dependency-resolution",children:"Langflow installation freezes at pip dependency resolution"}),"\n",(0,s.jsxs)(n.p,{children:["Installing Langflow OSS with ",(0,s.jsx)(n.code,{children:"pip install langflow"})," slowly fails with this error message:"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pip is looking at multiple versions of <> to determine which version is compatible with other requirements. This could take a while.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(n.p,{children:["To work around this issue, install Langflow with ",(0,s.jsx)(n.code,{children:"uv"})," instead of ",(0,s.jsx)(n.code,{children:"pip"}),", as explained in ",(0,s.jsx)(n.a,{href:"/get-started-installation#install-and-run-the-langflow-oss-python-package",children:"Install and run the Langflow OSS Python package"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"linux-installation-fails-to-build-required-package",children:"Linux installation fails to build required package"}),"\n",(0,s.jsx)(n.p,{children:"When you try to install Langflow OSS on Linux, installation fails because of outdated or missing packages:"}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Resolved ",props:{style:{color:"#FFA657"}}},{content:"455 ",props:{style:{color:"#79C0FF"}}},{content:"packages in ",props:{style:{color:"#A5D6FF"}}},{content:"18.92s",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" \xd7 ",props:{style:{color:"#FFA657"}}},{content:"Failed to build `",props:{style:{color:"#A5D6FF"}}},{content:"webrtcvad",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#A5D6FF"}}},{content:"2.0.10",props:{style:{color:"#79C0FF"}}},{content:"`",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" \u251c\u2500\u25b6",props:{style:{color:"#FFA657"}}},{content:" The build backend returned an error",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" \u2570\u2500\u25b6",props:{style:{color:"#FFA657"}}},{content:" Call to `setuptools.build_meta:__legacy__.build_wheel` ",props:{style:{color:"#A5D6FF"}}},{content:"failed",props:{style:{color:"#FFA657"}}},{content:" (exit status: ",props:{style:{color:"#A5D6FF"}}},{content:"1",props:{style:{color:"#79C0FF"}}},{content:")",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(n.p,{children:"To resolve this error, install the required build dependencies, and then retry the Langflow installation:"}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"sudo ",props:{style:{color:"#FFA657"}}},{content:"apt-get update",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"sudo ",props:{style:{color:"#FFA657"}}},{content:"apt-get install build-essential python3-dev",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(n.p,{children:["If upgrading your packages doesn't fix the issue, install ",(0,s.jsx)(n.code,{children:"gcc"})," separately, and then retry the Langflow installation:"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"sudo ",props:{style:{color:"#FFA657"}}},{content:"apt-get install gcc",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(n.h3,{id:"installation-failure-from-webrtcvad-package",children:["Installation failure from ",(0,s.jsx)(n.code,{children:"webrtcvad"})," package"]}),"\n",(0,s.jsxs)(n.p,{children:["If you experience an error from the ",(0,s.jsx)(n.code,{children:"webrtcvad"})," package, run ",(0,s.jsx)(n.code,{children:"uv pip install webrtcvad-wheels"})," in your virtual environment, and then retry the Langflow installation."]}),"\n",(0,s.jsx)(n.h3,{id:"protocol-buffers-protoc-required-for-intel-based-macs",children:"Protocol buffers (protoc) required for Intel-based Macs"}),"\n",(0,s.jsxs)(n.p,{children:["If you're installing Langflow on an Intel-based Mac, you may encounter installation errors if Protocol Buffers Compiler (",(0,s.jsx)(n.code,{children:"protoc"}),") is not installed."]}),"\n",(0,s.jsx)(n.p,{children:"This requirement doesn't apply to Apple Silicon Macs on ARM64."}),"\n",(0,s.jsxs)(n.p,{children:["To resolve this issue, install ",(0,s.jsx)(n.code,{children:"protoc"})," using ",(0,s.jsx)(n.code,{children:"brew install protobuf"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["For more information, including alternative installation methods, see the ",(0,s.jsx)(n.a,{href:"https://protobuf.dev/installation/",children:"Protocol buffers installation documentation"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"c-build-tools-required-for-langflow-desktop-on-windows",children:"C++ build tools required for Langflow Desktop on Windows"}),"\n",(0,s.jsxs)(n.p,{children:["Microsoft Windows installations of Langflow Desktop require a C++ compiler that may not be present on your system. If you receive a ",(0,s.jsx)(n.code,{children:"C++ Build Tools Required!"})," error, follow the on-screen prompt to install Microsoft C++ Build Tools, or ",(0,s.jsx)(n.a,{href:"https://visualstudio.microsoft.com/downloads/",children:"install Microsoft Visual Studio"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"langflow-startup-issues",children:"Langflow startup issues"}),"\n",(0,s.jsx)(n.p,{children:"The following issues can occur when attempting to start Langflow."}),"\n",(0,s.jsxs)(n.h3,{id:"no-langflow__main__-module",children:["No ",(0,s.jsx)(n.code,{children:"langflow.__main__"})," module"]}),"\n",(0,s.jsxs)(n.p,{children:["When you try to run Langflow with the command ",(0,s.jsx)(n.code,{children:"langflow run"}),", you encounter the following error:"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:">",props:{style:{color:"#FF7B72"}}},{content:" No module named ",props:{style:{color:"#C9D1D9"}}},{content:"'langflow.__main__'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(n.p,{children:"To resolve this issue, try the following:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Run ",(0,s.jsx)(n.code,{children:"uv run langflow run"})," instead of ",(0,s.jsx)(n.code,{children:"langflow run"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["If that doesn't work, reinstall the latest Langflow version with ",(0,s.jsx)(n.code,{children:"uv pip install langflow -U"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["If that doesn't work, reinstall Langflow and its dependencies with ",(0,s.jsx)(n.code,{children:"uv pip install langflow --pre -U --force-reinstall"}),"."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"langflow-runtraceback",children:"Langflow runTraceback"}),"\n",(0,s.jsxs)(n.p,{children:["When you try to run Langflow using the command ",(0,s.jsx)(n.code,{children:"langflow run"}),", you encounter the following error:"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:">",props:{style:{color:"#FF7B72"}}},{content:" langflow runTraceback (",props:{style:{color:"#C9D1D9"}}},{content:"most ",props:{style:{color:"#FFA657"}}},{content:"recent call last",props:{style:{color:"#A5D6FF"}}},{content:"): File ",props:{style:{color:"#C9D1D9"}}},{content:'".../langflow"',props:{style:{color:"#A5D6FF"}}},{content:", line 5, ",props:{style:{color:"#C9D1D9"}}},{content:"in <",props:{style:{color:"#FF7B72"}}},{content:"module",props:{style:{color:"#C9D1D9"}}},{content:">",props:{style:{color:"#FF7B72"}}},{content:" from langflow.__main__ import mainModuleNotFoundError: No module named ",props:{style:{color:"#C9D1D9"}}},{content:"'langflow.__main__'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(n.p,{children:"There are two possible reasons for this error:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Multiple Langflow installations"}),": You installed Langflow using ",(0,s.jsx)(n.code,{children:"pip install langflow"})," but you already had a previous version of Langflow installed in your system. In this case, you might be running the wrong executable."]}),"\n",(0,s.jsxs)(n.p,{children:["To solve this issue, run the correct executable by running ",(0,s.jsx)(n.code,{children:"python -m langflow run"})," instead of ",(0,s.jsx)(n.code,{children:"langflow run"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["If that doesn't work, try uninstalling and reinstalling Langflow with ",(0,s.jsx)(n.code,{children:"uv pip install langflow --pre -U"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Version conflict during installation"}),": Some version conflicts might have occurred during the installation process. To resolve this issue, reinstall Langflow and its dependencies by running ",(0,s.jsx)(n.code,{children:"python -m pip install langflow --pre -U --force-reinstall"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"environment-variables-not-available-from-terminal",children:"Environment variables not available from terminal"}),"\n",(0,s.jsxs)(n.p,{children:["Environment variables set in your terminal aren't automatically available to GUI-based applications like Langflow Desktop when launched through the Finder or the Start Menu.\nTo set environment variables for Langflow Desktop, see ",(0,s.jsx)(n.a,{href:"/environment-variables#set-environment-variables-for-langflow-desktop",children:"Set environment variables for Langflow Desktop"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"access-langflow-desktop-startup-logs",children:"Access Langflow Desktop startup logs"}),"\n",(0,s.jsxs)(n.p,{children:["If you encounter issues with Langflow Desktop, you might need to ",(0,s.jsx)(n.a,{href:"/logging#desktop-logs",children:"access Langflow Desktop startup logs"})," for debugging."]}),"\n",(0,s.jsx)(n.h3,{id:"user-not-found-or-inactive-when-running-multiple-flows",children:"User not found or inactive when running multiple flows"}),"\n",(0,s.jsxs)(n.p,{children:["When running multiple local Langflow OSS instances on different ports, such as ",(0,s.jsx)(n.code,{children:"localhost:7860"})," and ",(0,s.jsx)(n.code,{children:"localhost:7861"}),", you might see authentication errors in the logs.\nFor example:"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[07/22/25 10:57:07] INFO 2025-07-22 10:57:07 - INFO - utils - User not found or inactive.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(n.p,{children:"To resolve this error, use separate browser instances or browser profiles to access each Langflow instance."}),"\n",(0,s.jsx)(n.h3,{id:"package-is-not-installed",children:"Package is not installed"}),"\n",(0,s.jsx)(n.p,{children:"In Langflow OSS, you can follow the error message's instructions to install the missing dependency."}),"\n",(0,s.jsxs)(n.p,{children:["To manage dependencies in Langflow Desktop, see ",(0,s.jsx)(n.a,{href:"/install-custom-dependencies#langflow-desktop",children:"Install custom dependencies in Langflow Desktop"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"postgresql-asyncpg-driver-compatibility-issue",children:"PostgreSQL asyncpg driver compatibility issue"}),"\n",(0,s.jsx)(n.p,{children:"The following error can occur when initializing Langflow with a PostgreSQL database:"}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"sqlalchemy.exc.DBAPIError: (sqlalchemy.dialects.postgresql.asyncpg.Error) : invalid input for query argument $7: datetime.datetime(2025, 10, 31, 14, 8, 5... (can't subtract offset-naive and offset-aware datetimes)",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(n.p,{children:["This error occurs because ",(0,s.jsx)(n.code,{children:"asyncpg"})," has stricter timezone handling than ",(0,s.jsx)(n.code,{children:"psycopg2"}),", and is not fully compatible with Langflow's current database schema."]}),"\n",(0,s.jsxs)(n.p,{children:["To resolve this issue, remove ",(0,s.jsx)(n.code,{children:"asyncpg"})," from your installation and use ",(0,s.jsx)(n.code,{children:"psycopg2"})," instead."]}),"\n",(0,s.jsx)(n.h3,{id:"an-api-key-must-be-passed-as-query-or-header",children:"An API key must be passed as query or header"}),"\n",(0,s.jsxs)(n.p,{children:["The following error can occur when attempting to sign up on the Langflow sign in page: ",(0,s.jsx)(n.code,{children:"An API key must be passed as query or header"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["This means that ",(0,s.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})," is set to ",(0,s.jsx)(n.code,{children:"false"}),", and only superusers can create and activate non-superuser accounts.\nTherefore, you are locked out of this Langflow instance."]}),"\n",(0,s.jsx)(n.p,{children:"If you aren't an administrator, then a superuser must create and activate a non-superuser account before you can sign in."}),"\n",(0,s.jsxs)(n.p,{children:["If you are the administrator, sign in with a superuser account, or restart Langflow with ",(0,s.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN=true"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["For more information, see ",(0,s.jsx)(n.a,{href:"/api-keys-and-authentication#start-a-langflow-server-with-authentication-enabled",children:"Start Langflow Server with authentication enabled"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"langflow-upgrade-issues",children:"Langflow upgrade issues"}),"\n",(0,s.jsx)(n.p,{children:"The following issues can occur when upgrading your Langflow version."}),"\n",(0,s.jsxs)(n.p,{children:["For information about managing Langflow versions, see ",(0,s.jsx)(n.a,{href:"/get-started-installation",children:"Install Langflow"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"something-went-wrong-running-migrations",children:"Something went wrong running migrations"}),"\n",(0,s.jsxs)(n.p,{children:["The following error can occur during Langflow upgrades when the new version can't override ",(0,s.jsx)(n.code,{children:"langflow-pre.db"})," in the Langflow cache folder:"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:">",props:{style:{color:"#FF7B72"}}},{content:" Something went wrong running migrations. Please, run ",props:{style:{color:"#C9D1D9"}}},{content:"'langflow migration --fix'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(n.p,{children:["To resolve this error, clear the cache by deleting the contents of your Langflow cache folder.\nThe filepath depends on your operating system, installation type, and configuration options.\nFor more information and default filepaths, see ",(0,s.jsx)(n.a,{href:"/memory",children:"Memory management options"}),"."]}),"\n",(0,s.jsx)(n.admonition,{type:"danger",children:(0,s.jsx)(n.p,{children:"Clearing the cache erases your settings.\nIf you want to retain your settings files, create a backup of those files before clearing the cache folder."})}),"\n",(0,s.jsx)(n.h3,{id:"langflow-desktop-says-it-is-running-the-latest-version-but-it-is-actually-behind",children:"Langflow Desktop says it is running the latest version, but it is actually behind"}),"\n",(0,s.jsx)(n.p,{children:"If you are running Langflow Desktop version 1.4.2 or earlier, the UI might incorrectly report that you are on the latest version when a newer version is available."}),"\n",(0,s.jsx)(n.p,{children:"This happens because the automatic update feature in the UI was introduced in version 1.4.2.\nEarlier versions can't automatically detect or apply updates."}),"\n",(0,s.jsxs)(n.p,{children:["To resolve this issue, uninstall Langflow Desktop, and then ",(0,s.jsx)(n.a,{href:"https://langflow.org/desktop",children:"download and install the latest version of Langflow Desktop"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"422-error-when-freezing-components-after-upgrading-pydanticfastapi-dependencies",children:"422 error when freezing components after upgrading Pydantic/FastAPI dependencies"}),"\n",(0,s.jsx)(n.p,{children:"If you locally upgrade your Pydantic and FastAPI dependencies, you may encounter a 422 error when trying to freeze components."}),"\n",(0,s.jsx)(n.p,{children:"This error occurs due to changes in how request bodies are handled in newer versions of these dependencies."}),"\n",(0,s.jsx)(n.p,{children:"If you're experiencing this issue, update your Langflow installation to version 1.6.5 or later, which includes a fix for this issue."}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"pip install langflow ",props:{style:{color:"#A5D6FF"}}},{content:"-U",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(n.h2,{id:"langflow-uninstall-issues",children:"Langflow uninstall issues"}),"\n",(0,s.jsx)(n.p,{children:"The following issues can occur when uninstalling Langflow."}),"\n",(0,s.jsx)(n.h3,{id:"dot-directory-isnt-deleted-when-uninstalling-langflow-desktop-on-macos",children:"Dot directory isn't deleted when uninstalling Langflow Desktop on macOS"}),"\n",(0,s.jsxs)(n.p,{children:["On macOS, uninstalling Langflow Desktop deletes the ",(0,s.jsx)(n.code,{children:".app"})," file but doesn't delete files in ",(0,s.jsx)(n.code,{children:"~/.langflow"}),", which includes files generated during usage like cache and settings."]}),"\n",(0,s.jsx)(n.p,{children:"If you reinstall Langflow Desktop, it starts with the existing data from the previous installation."}),"\n",(0,s.jsxs)(n.p,{children:["To fully remove a Langflow Desktop macOS installation, you must also delete ",(0,s.jsx)(n.code,{children:"~/.langflow"}),":"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"rm ",props:{style:{color:"#FFA657"}}},{content:"-rf ",props:{style:{color:"#79C0FF"}}},{content:".langflow",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(n.h2,{id:"mcp",children:"Langflow MCP issues"}),"\n",(0,s.jsx)(n.p,{children:"The following issues can occur when using Langflow as an MCP server or client."}),"\n",(0,s.jsx)(n.h3,{id:"claude-for-desktop-doesnt-use-mcp-server-tools-correctly",children:"Claude for Desktop doesn't use MCP server tools correctly"}),"\n",(0,s.jsxs)(n.p,{children:["If Claude for Desktop doesn't use your server's tools correctly, try explicitly defining the path to your local ",(0,s.jsx)(n.code,{children:"uvx"})," or ",(0,s.jsx)(n.code,{children:"npx"})," executable file in the ",(0,s.jsx)(n.code,{children:"claude_desktop_config.json"})," configuration file:"]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["To find your ",(0,s.jsx)(n.code,{children:"uvx"})," path, run ",(0,s.jsx)(n.code,{children:"which uvx"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["To find your ",(0,s.jsx)(n.code,{children:"npx"})," path, run ",(0,s.jsx)(n.code,{children:"which npx"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["In your ",(0,s.jsx)(n.code,{children:"claude_desktop_config.json"})," file, add the path to your Langflow MCP server configuration, as shown in the following examples."]}),"\n",(0,s.jsxs)(l.A,{children:[(0,s.jsx)(a.A,{value:"uvx",label:"uvx",default:!0,children:(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcpServers"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "PROJECT_NAME"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "command"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"PATH_TO_UVX"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "args"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcp-proxy"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/streamable"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})}),(0,s.jsx)(a.A,{value:"npx",label:"npx",children:(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcpServers"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "PROJECT_NAME"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "command"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"PATH_TO_NPX"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "args"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "-y"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "supergateway"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "--sse"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/streamable"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"mcp-browser-based-flows-dont-open-a-browser-on-windows",children:"MCP browser-based flows don't open a browser on Windows"}),"\n",(0,s.jsx)(n.p,{children:"This is a known issue when using MCP Tools with browser navigation actions, such as Playwright, on Windows: The agent can execute the tool successfully but the browser tab or window doesn't open."}),"\n",(0,s.jsx)(n.p,{children:"This issue occurs because the MCP server runs from a Python process, which prevents it from opening browser windows in WSL or Windows."}),"\n",(0,s.jsxs)(n.p,{children:["To work around this issue, use the standalone MCP server approach documented in the ",(0,s.jsx)(n.a,{href:"https://github.com/microsoft/playwright-mcp?tab=readme-ov-file#standalone-mcp-server",children:"Playwright MCP repository"}),".\nAfter the server is up and running, you can add it as an HTTP/SSE server in Langflow."]}),"\n",(0,s.jsx)(n.p,{children:"For other browser navigation tools, see the provider's documentation for specific troubleshooting guidance."}),"\n",(0,s.jsx)(n.h3,{id:"no-tools-or-prompts-connected-on-mcp-servers-in-mixed-windowswsl-environments",children:'"No tools or prompts connected" on MCP servers in mixed Windows/WSL environments'}),"\n",(0,s.jsx)(n.p,{children:'If you encounter "No tools or prompts connected" errors or connection failures when using Langflow Desktop as an MCP server with clients running in different environments, such as Langflow on a Windows host and an MCP client in WSL, this is due to network isolation between Windows and WSL environments.'}),"\n",(0,s.jsxs)(n.p,{children:["WSL cannot directly access Windows localhost services, and Langflow running on a Windows host is not accessible from WSL clients at ",(0,s.jsx)(n.code,{children:"localhost:7860"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"To work around this issue, run the server and host in the same operating environment."}),"\n",(0,s.jsxs)(n.p,{children:["Alternatively, configure Langflow Desktop to accept connections from WSL at the default Windows IP address of ",(0,s.jsx)(n.code,{children:"10.255.255.254:7860"})," instead of ",(0,s.jsx)(n.code,{children:"localhost"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"token-length-limit-errors-in-embedding-model-components",children:"Token length limit errors in Embedding Model components"}),"\n",(0,s.jsxs)(n.p,{children:["Token length errors can happen if your chunking strategy doesn't align with your embedding model's tokenization limits.\nFor more information, see ",(0,s.jsx)(n.a,{href:"/split-text#chunk-size",children:"Tokenization errors due to chunk size"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"document-processing-errors-in-docker-containers",children:"Document processing errors in Docker containers"}),"\n",(0,s.jsxs)(n.p,{children:["If you're running Langflow in a Docker container, you might encounter errors when using components that handle files or images, such as the ",(0,s.jsxs)(n.a,{href:"/read-file",children:[(0,s.jsx)(n.strong,{children:"Read File"})," component"]})," or ",(0,s.jsxs)(n.a,{href:"/bundles-docling",children:[(0,s.jsx)(n.strong,{children:"Docling"})," components"]}),". To resolve these errors, you might need to install additional system dependencies."]}),"\n",(0,s.jsx)(n.p,{children:"When running Langflow in a Linux-based Docker container, Docling requires system libraries that aren't included in the base Docker image. If you see errors related to document or image processing, add the following to your Dockerfile:"}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"RUN",props:{style:{color:"#FF7B72"}}},{content:" apt-get update && apt-get install -y libgl1 libglib2.0-0",props:{style:{color:"#C9D1D9"}}}]}],lang:"dockerfile"},annotations:[]}]}),"\n",(0,s.jsx)(n.p,{children:"These dependencies are required by Docling for document processing operations."}),"\n",(0,s.jsxs)(n.p,{children:["For more information about customizing Docker images, see ",(0,s.jsx)(n.a,{href:"/deployment-docker#customize-the-langflow-docker-image",children:"Customize the Langflow Docker image with your own code"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"custom-components-and-integrations-issues",children:"Custom components and integrations issues"}),"\n",(0,s.jsx)(n.p,{children:"For troubleshooting advice for a third-party integration, see the information about that integration in the Langflow documentation and the provider's documentation."}),"\n",(0,s.jsxs)(n.p,{children:["If you are building a custom component, see ",(0,s.jsx)(n.a,{href:"/components-custom-components#error-handling-and-logging",children:"Error handling and logging for custom Python components"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"custom-components-not-appearing-in-the-visual-editor",children:"Custom components not appearing in the visual editor"}),"\n",(0,s.jsx)(n.p,{children:"If your custom components are not appearing in the Langflow visual editor, try the following troubleshooting steps:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Ensure your components follow the ",(0,s.jsx)(n.a,{href:"https://docs.langflow.org/components-custom-components#directory-structure-requirements",children:"required directory structure"}),"."]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"/your/custom/components/path/ # Base directory set by LANGFLOW_COMPONENTS_PATH",props:{}}]},{tokens:[{content:" \u2514\u2500\u2500 category_name/ # Required category subfolder that determines menu name",props:{}}]},{tokens:[{content:" \u251c\u2500\u2500 __init__.py # Required",props:{}}]},{tokens:[{content:" \u2514\u2500\u2500 custom_component.py # Component file",props:{}}]}],lang:"text"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Verify each category directory includes an ",(0,s.jsx)(n.code,{children:"__init__.py"})," file.\nThis is required for Python to recognize the directory as a module."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Use the command line argument instead of the environment variable for ",(0,s.jsx)(n.code,{children:"LANGFLOW_COMPONENTS_PATH"}),".\nIf you're using the ",(0,s.jsx)(n.code,{children:"LANGFLOW_COMPONENTS_PATH"})," environment variable and components aren't loading, try the ",(0,s.jsx)(n.code,{children:"--components-path"})," command line argument instead:"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"run langflow run ",props:{style:{color:"#A5D6FF"}}},{content:"--components-path ",props:{style:{color:"#79C0FF"}}},{content:"/path/to/your/custom/components",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["If you continue to experience issues, please ",(0,s.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/issues",children:"report them on GitHub"})," with details about your directory structure and component setup."]}),"\n",(0,s.jsx)(n.h2,{id:"see-also",children:"See also"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"/contributing-github-issues",children:"Langflow GitHub Issues and Discussions"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"/contributing-telemetry",children:"Langflow telemetry"})}),"\n"]})]})}function w(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(m,{...e})}):m(e)}function y(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.ba84ccbb.js b/assets/js/runtime~main.4b68ad37.js similarity index 98% rename from assets/js/runtime~main.ba84ccbb.js rename to assets/js/runtime~main.4b68ad37.js index 812a63a341..43c56f0753 100644 --- a/assets/js/runtime~main.ba84ccbb.js +++ b/assets/js/runtime~main.4b68ad37.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,d,f,b,c={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={id:e,loaded:!1,exports:{}};return c[e].call(d.exports,d,d.exports,r),d.loaded=!0,d.exports}r.m=c,r.c=t,e=[],r.O=(a,d,f,b)=>{if(!d){var c=1/0;for(i=0;i=b)&&Object.keys(r.O).every(e=>r.O[e](d[o]))?d.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[d,f,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var c={};a=a||[null,d({}),d([]),d(d)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=d(t))Object.getOwnPropertyNames(t).forEach(a=>c[a]=()=>e[a]);return c.default=()=>e,r.d(b,c),b},r.d=(e,a)=>{for(var d in a)r.o(a,d)&&!r.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((a,d)=>(r.f[d](e,a),a),[])),r.u=e=>"assets/js/"+({15:"d803fa53",30:"db8c087e",38:"a99a45c9",44:"e3f369d5",78:"b768a3a5",93:"a3702f61",126:"ae70dfbf",129:"dfa3dc90",253:"bb45d4f9",351:"b9acb8d9",375:"3d81f1cf",446:"a4232cf8",534:"76e36fb0",596:"c2e0ed62",598:"db4f3bbd",600:"ee87c775",681:"ffa0f8b1",750:"33b5ee95",879:"8bee5443",883:"1dfb8d43",889:"08b309e9",956:"03735ec1",957:"c141421f",1006:"47e58a89",1151:"890279ba",1162:"f7e6b9d6",1193:"444a6da6",1303:"41d45d82",1308:"ec030ab7",1345:"fe6d5b4f",1408:"2fc7e024",1446:"c78349fc",1490:"0f761898",1567:"22dd74f7",1703:"ff8bad6c",1861:"8ad67c3b",1876:"5c3b537a",1895:"d375ca1d",1966:"b1582da4",2076:"common",2102:"755d162a",2116:"0f1bef30",2138:"1a4e3797",2272:"ca5faf5d",2278:"c4280da9",2348:"f2da9399",2360:"017d425f",2394:"c2ea283c",2423:"19bcb67f",2457:"46abd5bb",2460:"954b19af",2469:"cd086441",2472:"62f97fbe",2475:"1ab69cbd",2565:"622fd833",2651:"8cd0650d",2741:"43ad9ba4",2752:"e14655eb",2888:"32270e71",2909:"144a43f5",2969:"f0ad3fbb",2990:"1d50b418",3035:"87b7bbd6",3038:"6df123cd",3140:"1a29c454",3147:"c83c70df",3164:"67f2dc6c",3240:"b079b393",3247:"f0b67137",3263:"730da84e",3284:"6398c398",3345:"040305fb",3353:"2b4d41d7",3361:"8f633f11",3368:"efa0f9ee",3387:"3d67876e",3468:"c76bd485",3500:"c3c63498",3536:"2eb731bc",3683:"5a0b74d9",4036:"fbcfc90d",4085:"cb17b4e0",4090:"a8ca941b",4173:"d51059db",4263:"9a5e6f6b",4314:"f6a246db",4341:"e1a0f423",4356:"7b864b08",4384:"622bdc6f",4474:"3db73d6f",4573:"baacc2a1",4612:"6a9eca1a",4614:"e55b8e98",4644:"d3e886ab",4876:"44691977",4907:"86116998",4919:"ce43de4b",4995:"62266e9d",5048:"3c440e04",5110:"e9fe1d10",5144:"944c5f91",5200:"ff7f32ba",5217:"fb0a7a3f",5270:"99931d31",5333:"70909872",5343:"1b10d5ba",5397:"eba86ea4",5412:"a6d50436",5660:"1b208f60",5663:"b1379b2b",5739:"69079906",5742:"aba21aa0",5757:"ad42ff54",5838:"bbb8ec1d",5903:"69d616f2",5985:"e3536031",6108:"2fed9fb3",6224:"ef9aa223",6256:"6888b60e",6289:"45e5859c",6311:"cce672fb",6329:"a7b545c5",6459:"290c78e6",6513:"f13693f0",6538:"719cba95",6559:"7431813e",6601:"81bb6a5c",6801:"acefda8b",6839:"80866714",6999:"d5ec984b",7098:"a7bd4aaa",7118:"7996108c",7243:"5d9d4350",7356:"2ea623f2",7484:"ad01e028",7498:"e4400415",7502:"1a547ad8",7512:"4c09a7b3",7567:"4545d55b",7586:"17856424",7705:"2b91b6ca",7720:"3bfbe7c9",7807:"1a8a0a64",7824:"2b56b65e",7829:"7c27dc91",7859:"593d9d00",7902:"619c7267",7964:"ff35961a",7968:"9b0af131",8090:"6e85978c",8240:"0102a83b",8267:"02f8077b",8268:"a4b6c971",8269:"c7f91cbe",8294:"f2bedfce",8336:"e7fd9095",8392:"20177945",8401:"17896441",8508:"10dd1586",8571:"da1ad91e",8593:"56350599",8607:"681e5335",8611:"0c23d011",8625:"3a9e0e6c",8649:"7de42fc9",8702:"42962acd",8750:"8a484c94",8765:"1a2eaade",8822:"555ae514",8862:"e87b52ac",8963:"56c23a02",8990:"5f1a63c6",9033:"9f55b2fc",9048:"a94703ab",9213:"62d1268c",9227:"7e40e6b3",9264:"c7f32161",9315:"16faf8bf",9331:"ffcd190c",9363:"f3312674",9459:"97254d1d",9482:"a9c1003f",9522:"85dc2a2b",9610:"453ae64a",9640:"3b25a2ae",9647:"5e95c892",9674:"feac1fba",9712:"d8c8efb9",9758:"439d880a",9763:"aece522a",9781:"b796be74",9897:"f0eeb72e",9976:"230d5fdc",9986:"d1f3cfe5"}[e]||e)+"."+{15:"d4103b44",30:"5e412f6d",38:"5c74e1d6",44:"6310a01a",78:"670c02e8",93:"622a1f88",126:"d3c21ad3",129:"a3d7c438",253:"35cb6896",351:"2a1a8be1",375:"44466a25",416:"bba44855",446:"720c59c5",534:"f4a56aad",596:"471fd207",598:"5b1053df",600:"bc28b1d0",681:"26c49a71",750:"4068db8f",879:"b4c046be",883:"d44a18cb",889:"df4f3b30",956:"9d5f0507",957:"9350e3d5",1006:"61347995",1151:"4db235b1",1162:"12f31dbe",1193:"d08634fc",1303:"cb77a67a",1308:"19ab43fe",1345:"dd2b7bcf",1408:"5cdd44e5",1446:"bc1d8376",1490:"e5aee754",1567:"aa1955a9",1703:"bb99be98",1861:"f210ffea",1876:"198d048f",1895:"47c5ca9a",1966:"26cfa313",2076:"a147e1aa",2102:"be1bbe87",2116:"66ba19b7",2138:"b9e35d57",2237:"6bbae924",2272:"0cf63219",2278:"4b2cb97f",2348:"4cb98c8a",2360:"5e727bab",2394:"2541a8c1",2423:"9a704566",2457:"a5d2327d",2460:"b5427fc6",2469:"c18f6bcb",2472:"9b44eed4",2475:"95e18472",2565:"26731c74",2651:"92578320",2693:"380feae7",2741:"1c73b360",2752:"05601a76",2888:"603c895a",2909:"5739f38d",2969:"51e6616d",2990:"244599e4",3035:"930378b5",3038:"746b5104",3140:"80d4a164",3147:"b2a4407c",3164:"afb9b764",3240:"759d13b9",3247:"d5683b4f",3263:"da23b2bf",3284:"46083cba",3345:"cd817a66",3353:"f158ad34",3361:"e6042c27",3368:"8c3ea529",3387:"1e3dfa97",3468:"3ae40933",3500:"9efdd30b",3536:"e11d632a",3683:"b0f81b78",4036:"3ba6e711",4085:"e845c52f",4090:"dfdad261",4115:"d645fc23",4173:"bacef605",4263:"d2b7c901",4314:"2202791a",4341:"976a77d3",4356:"450422c1",4384:"1ef5e03e",4474:"2967ccdf",4573:"04372438",4612:"20606c9d",4614:"b129eb58",4644:"a86e3992",4754:"78f469df",4876:"78d44a41",4907:"5ddf17c6",4919:"7a5f58d3",4995:"ece12ff2",5048:"b43aa9f1",5110:"1cd06410",5144:"d825c9b4",5200:"5de1608d",5217:"f332d0d1",5270:"ec83b3bb",5333:"d6bdb628",5343:"5fd32b67",5397:"ba97f892",5412:"c8c48fd3",5660:"57b46a92",5663:"8088b191",5739:"2a563c92",5742:"8cdbe811",5757:"9de749fd",5838:"83e91f02",5903:"821f3999",5985:"aafe6790",6108:"365e2569",6224:"af99e84a",6256:"d9ae4c13",6289:"f6e7c945",6311:"af719805",6329:"40158bd3",6459:"2463c0f5",6513:"13baf1e4",6538:"d571e06d",6559:"c4af7bf3",6601:"66f73f50",6801:"6897bd64",6839:"207cc86d",6999:"64627d58",7098:"e566890f",7118:"13f2c6a7",7243:"930b5bd6",7356:"0b394330",7484:"002bb639",7498:"97257edb",7502:"f4acd00b",7512:"27e1103c",7567:"0a1c17c1",7586:"05bd2bee",7705:"1dc17cbb",7720:"9691b150",7807:"a3ffb4bf",7824:"48ec5133",7829:"bbdb61d4",7859:"acd80658",7902:"b2c19227",7964:"7ef150a6",7968:"8658e795",8090:"af4cfb50",8240:"d4f52412",8267:"dbfe5354",8268:"7ed10065",8269:"2921c476",8294:"e344768e",8336:"0e5f0157",8392:"0768ab3a",8401:"9b189e06",8508:"d977358d",8571:"c0329697",8593:"42a61cdd",8607:"b96fee6d",8611:"870b467b",8625:"8df7c8bf",8649:"540f0784",8702:"c8d4fac3",8750:"56e811df",8765:"e2c3e49a",8822:"77921987",8862:"2272a76a",8913:"fd271a57",8963:"fca39a90",8990:"1753fc06",9033:"e3a15f6c",9048:"fbe061ed",9213:"7074cfcc",9227:"b79ed718",9264:"a73bd813",9315:"c9a9899a",9331:"fb999fe4",9363:"66313398",9459:"bcd99a3a",9482:"32df5989",9522:"cc51d0fb",9610:"f3b4d314",9640:"8da65214",9647:"a3e58221",9674:"dec60a8d",9712:"f5eaa1ca",9758:"bf4164d1",9763:"05004e42",9781:"fb5ede14",9897:"8be94bd0",9976:"68f5d90c",9986:"87289072"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},b="langflow-docs:",r.l=(e,a,d,c)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var b=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach(e=>e(d)),a)return a(d)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={17856424:"7586",17896441:"8401",20177945:"8392",44691977:"4876",56350599:"8593",69079906:"5739",70909872:"5333",80866714:"6839",86116998:"4907",d803fa53:"15",db8c087e:"30",a99a45c9:"38",e3f369d5:"44",b768a3a5:"78",a3702f61:"93",ae70dfbf:"126",dfa3dc90:"129",bb45d4f9:"253",b9acb8d9:"351","3d81f1cf":"375",a4232cf8:"446","76e36fb0":"534",c2e0ed62:"596",db4f3bbd:"598",ee87c775:"600",ffa0f8b1:"681","33b5ee95":"750","8bee5443":"879","1dfb8d43":"883","08b309e9":"889","03735ec1":"956",c141421f:"957","47e58a89":"1006","890279ba":"1151",f7e6b9d6:"1162","444a6da6":"1193","41d45d82":"1303",ec030ab7:"1308",fe6d5b4f:"1345","2fc7e024":"1408",c78349fc:"1446","0f761898":"1490","22dd74f7":"1567",ff8bad6c:"1703","8ad67c3b":"1861","5c3b537a":"1876",d375ca1d:"1895",b1582da4:"1966",common:"2076","755d162a":"2102","0f1bef30":"2116","1a4e3797":"2138",ca5faf5d:"2272",c4280da9:"2278",f2da9399:"2348","017d425f":"2360",c2ea283c:"2394","19bcb67f":"2423","46abd5bb":"2457","954b19af":"2460",cd086441:"2469","62f97fbe":"2472","1ab69cbd":"2475","622fd833":"2565","8cd0650d":"2651","43ad9ba4":"2741",e14655eb:"2752","32270e71":"2888","144a43f5":"2909",f0ad3fbb:"2969","1d50b418":"2990","87b7bbd6":"3035","6df123cd":"3038","1a29c454":"3140",c83c70df:"3147","67f2dc6c":"3164",b079b393:"3240",f0b67137:"3247","730da84e":"3263","6398c398":"3284","040305fb":"3345","2b4d41d7":"3353","8f633f11":"3361",efa0f9ee:"3368","3d67876e":"3387",c76bd485:"3468",c3c63498:"3500","2eb731bc":"3536","5a0b74d9":"3683",fbcfc90d:"4036",cb17b4e0:"4085",a8ca941b:"4090",d51059db:"4173","9a5e6f6b":"4263",f6a246db:"4314",e1a0f423:"4341","7b864b08":"4356","622bdc6f":"4384","3db73d6f":"4474",baacc2a1:"4573","6a9eca1a":"4612",e55b8e98:"4614",d3e886ab:"4644",ce43de4b:"4919","62266e9d":"4995","3c440e04":"5048",e9fe1d10:"5110","944c5f91":"5144",ff7f32ba:"5200",fb0a7a3f:"5217","99931d31":"5270","1b10d5ba":"5343",eba86ea4:"5397",a6d50436:"5412","1b208f60":"5660",b1379b2b:"5663",aba21aa0:"5742",ad42ff54:"5757",bbb8ec1d:"5838","69d616f2":"5903",e3536031:"5985","2fed9fb3":"6108",ef9aa223:"6224","6888b60e":"6256","45e5859c":"6289",cce672fb:"6311",a7b545c5:"6329","290c78e6":"6459",f13693f0:"6513","719cba95":"6538","7431813e":"6559","81bb6a5c":"6601",acefda8b:"6801",d5ec984b:"6999",a7bd4aaa:"7098","7996108c":"7118","5d9d4350":"7243","2ea623f2":"7356",ad01e028:"7484",e4400415:"7498","1a547ad8":"7502","4c09a7b3":"7512","4545d55b":"7567","2b91b6ca":"7705","3bfbe7c9":"7720","1a8a0a64":"7807","2b56b65e":"7824","7c27dc91":"7829","593d9d00":"7859","619c7267":"7902",ff35961a:"7964","9b0af131":"7968","6e85978c":"8090","0102a83b":"8240","02f8077b":"8267",a4b6c971:"8268",c7f91cbe:"8269",f2bedfce:"8294",e7fd9095:"8336","10dd1586":"8508",da1ad91e:"8571","681e5335":"8607","0c23d011":"8611","3a9e0e6c":"8625","7de42fc9":"8649","42962acd":"8702","8a484c94":"8750","1a2eaade":"8765","555ae514":"8822",e87b52ac:"8862","56c23a02":"8963","5f1a63c6":"8990","9f55b2fc":"9033",a94703ab:"9048","62d1268c":"9213","7e40e6b3":"9227",c7f32161:"9264","16faf8bf":"9315",ffcd190c:"9331",f3312674:"9363","97254d1d":"9459",a9c1003f:"9482","85dc2a2b":"9522","453ae64a":"9610","3b25a2ae":"9640","5e95c892":"9647",feac1fba:"9674",d8c8efb9:"9712","439d880a":"9758",aece522a:"9763",b796be74:"9781",f0eeb72e:"9897","230d5fdc":"9976",d1f3cfe5:"9986"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,d)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)d.push(f[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var b=new Promise((d,b)=>f=e[a]=[d,b]);d.push(f[2]=b);var c=r.p+r.u(a),t=new Error;r.l(c,d=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var b=d&&("load"===d.type?"missing":d.type),c=d&&d.target&&d.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+c+")",t.name="ChunkLoadError",t.type=b,t.request=c,f[1](t)}},"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,d)=>{var f,b,[c,t,o]=d,n=0;if(c.some(a=>0!==e[a])){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(d);n{"use strict";var e,a,d,f,b,c={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={id:e,loaded:!1,exports:{}};return c[e].call(d.exports,d,d.exports,r),d.loaded=!0,d.exports}r.m=c,r.c=t,e=[],r.O=(a,d,f,b)=>{if(!d){var c=1/0;for(i=0;i=b)&&Object.keys(r.O).every(e=>r.O[e](d[o]))?d.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[d,f,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var c={};a=a||[null,d({}),d([]),d(d)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=d(t))Object.getOwnPropertyNames(t).forEach(a=>c[a]=()=>e[a]);return c.default=()=>e,r.d(b,c),b},r.d=(e,a)=>{for(var d in a)r.o(a,d)&&!r.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((a,d)=>(r.f[d](e,a),a),[])),r.u=e=>"assets/js/"+({15:"d803fa53",30:"db8c087e",38:"a99a45c9",44:"e3f369d5",78:"b768a3a5",93:"a3702f61",126:"ae70dfbf",129:"dfa3dc90",253:"bb45d4f9",351:"b9acb8d9",375:"3d81f1cf",446:"a4232cf8",534:"76e36fb0",596:"c2e0ed62",598:"db4f3bbd",600:"ee87c775",681:"ffa0f8b1",750:"33b5ee95",879:"8bee5443",883:"1dfb8d43",889:"08b309e9",956:"03735ec1",957:"c141421f",1006:"47e58a89",1151:"890279ba",1162:"f7e6b9d6",1193:"444a6da6",1303:"41d45d82",1308:"ec030ab7",1345:"fe6d5b4f",1408:"2fc7e024",1446:"c78349fc",1490:"0f761898",1567:"22dd74f7",1703:"ff8bad6c",1861:"8ad67c3b",1876:"5c3b537a",1895:"d375ca1d",1966:"b1582da4",2076:"common",2102:"755d162a",2116:"0f1bef30",2138:"1a4e3797",2272:"ca5faf5d",2278:"c4280da9",2348:"f2da9399",2360:"017d425f",2394:"c2ea283c",2423:"19bcb67f",2457:"46abd5bb",2460:"954b19af",2469:"cd086441",2472:"62f97fbe",2475:"1ab69cbd",2565:"622fd833",2651:"8cd0650d",2741:"43ad9ba4",2752:"e14655eb",2888:"32270e71",2909:"144a43f5",2969:"f0ad3fbb",2990:"1d50b418",3035:"87b7bbd6",3038:"6df123cd",3140:"1a29c454",3147:"c83c70df",3164:"67f2dc6c",3240:"b079b393",3247:"f0b67137",3263:"730da84e",3284:"6398c398",3345:"040305fb",3353:"2b4d41d7",3361:"8f633f11",3368:"efa0f9ee",3387:"3d67876e",3468:"c76bd485",3500:"c3c63498",3536:"2eb731bc",3683:"5a0b74d9",4036:"fbcfc90d",4085:"cb17b4e0",4090:"a8ca941b",4173:"d51059db",4263:"9a5e6f6b",4314:"f6a246db",4341:"e1a0f423",4356:"7b864b08",4384:"622bdc6f",4474:"3db73d6f",4573:"baacc2a1",4612:"6a9eca1a",4614:"e55b8e98",4644:"d3e886ab",4876:"44691977",4907:"86116998",4919:"ce43de4b",4995:"62266e9d",5048:"3c440e04",5110:"e9fe1d10",5144:"944c5f91",5200:"ff7f32ba",5217:"fb0a7a3f",5270:"99931d31",5333:"70909872",5343:"1b10d5ba",5397:"eba86ea4",5412:"a6d50436",5660:"1b208f60",5663:"b1379b2b",5739:"69079906",5742:"aba21aa0",5757:"ad42ff54",5838:"bbb8ec1d",5903:"69d616f2",5985:"e3536031",6108:"2fed9fb3",6224:"ef9aa223",6256:"6888b60e",6289:"45e5859c",6311:"cce672fb",6329:"a7b545c5",6459:"290c78e6",6513:"f13693f0",6538:"719cba95",6559:"7431813e",6601:"81bb6a5c",6801:"acefda8b",6839:"80866714",6999:"d5ec984b",7098:"a7bd4aaa",7118:"7996108c",7243:"5d9d4350",7356:"2ea623f2",7484:"ad01e028",7498:"e4400415",7502:"1a547ad8",7512:"4c09a7b3",7567:"4545d55b",7586:"17856424",7705:"2b91b6ca",7720:"3bfbe7c9",7807:"1a8a0a64",7824:"2b56b65e",7829:"7c27dc91",7859:"593d9d00",7902:"619c7267",7964:"ff35961a",7968:"9b0af131",8090:"6e85978c",8240:"0102a83b",8267:"02f8077b",8268:"a4b6c971",8269:"c7f91cbe",8294:"f2bedfce",8336:"e7fd9095",8392:"20177945",8401:"17896441",8508:"10dd1586",8571:"da1ad91e",8593:"56350599",8607:"681e5335",8611:"0c23d011",8625:"3a9e0e6c",8649:"7de42fc9",8702:"42962acd",8750:"8a484c94",8765:"1a2eaade",8822:"555ae514",8862:"e87b52ac",8963:"56c23a02",8990:"5f1a63c6",9033:"9f55b2fc",9048:"a94703ab",9213:"62d1268c",9227:"7e40e6b3",9264:"c7f32161",9315:"16faf8bf",9331:"ffcd190c",9363:"f3312674",9459:"97254d1d",9482:"a9c1003f",9522:"85dc2a2b",9610:"453ae64a",9640:"3b25a2ae",9647:"5e95c892",9674:"feac1fba",9712:"d8c8efb9",9758:"439d880a",9763:"aece522a",9781:"b796be74",9897:"f0eeb72e",9976:"230d5fdc",9986:"d1f3cfe5"}[e]||e)+"."+{15:"d4103b44",30:"5e412f6d",38:"5c74e1d6",44:"6310a01a",78:"670c02e8",93:"622a1f88",126:"d3c21ad3",129:"a3d7c438",253:"35cb6896",351:"2a1a8be1",375:"44466a25",416:"bba44855",446:"720c59c5",534:"f4a56aad",596:"471fd207",598:"5b1053df",600:"bc28b1d0",681:"26c49a71",750:"4068db8f",879:"b4c046be",883:"d44a18cb",889:"df4f3b30",956:"9d5f0507",957:"9350e3d5",1006:"61347995",1151:"4db235b1",1162:"12f31dbe",1193:"d08634fc",1303:"cb77a67a",1308:"19ab43fe",1345:"dd2b7bcf",1408:"5cdd44e5",1446:"bc1d8376",1490:"e5aee754",1567:"aa1955a9",1703:"bb99be98",1861:"f210ffea",1876:"198d048f",1895:"47c5ca9a",1966:"26cfa313",2076:"a147e1aa",2102:"be1bbe87",2116:"66ba19b7",2138:"b9e35d57",2237:"6bbae924",2272:"0cf63219",2278:"4b2cb97f",2348:"4cb98c8a",2360:"5e727bab",2394:"2541a8c1",2423:"9a704566",2457:"a5d2327d",2460:"b5427fc6",2469:"c18f6bcb",2472:"9b44eed4",2475:"95e18472",2565:"26731c74",2651:"92578320",2693:"380feae7",2741:"1c73b360",2752:"05601a76",2888:"603c895a",2909:"5739f38d",2969:"51e6616d",2990:"244599e4",3035:"930378b5",3038:"746b5104",3140:"80d4a164",3147:"b2a4407c",3164:"afb9b764",3240:"759d13b9",3247:"d5683b4f",3263:"da23b2bf",3284:"46083cba",3345:"cd817a66",3353:"f158ad34",3361:"e6042c27",3368:"8c3ea529",3387:"1e3dfa97",3468:"3ae40933",3500:"9efdd30b",3536:"36c717d9",3683:"b0f81b78",4036:"3ba6e711",4085:"e845c52f",4090:"dfdad261",4115:"d645fc23",4173:"bacef605",4263:"d2b7c901",4314:"2202791a",4341:"e36fdbdb",4356:"450422c1",4384:"1ef5e03e",4474:"2967ccdf",4573:"04372438",4612:"20606c9d",4614:"b129eb58",4644:"a86e3992",4754:"78f469df",4876:"78d44a41",4907:"5ddf17c6",4919:"7a5f58d3",4995:"ece12ff2",5048:"b43aa9f1",5110:"1cd06410",5144:"d825c9b4",5200:"5de1608d",5217:"f332d0d1",5270:"ec83b3bb",5333:"d6bdb628",5343:"5fd32b67",5397:"ba97f892",5412:"c8c48fd3",5660:"57b46a92",5663:"8088b191",5739:"2a563c92",5742:"8cdbe811",5757:"9de749fd",5838:"83e91f02",5903:"821f3999",5985:"aafe6790",6108:"365e2569",6224:"af99e84a",6256:"d9ae4c13",6289:"f6e7c945",6311:"af719805",6329:"40158bd3",6459:"2463c0f5",6513:"13baf1e4",6538:"d571e06d",6559:"c4af7bf3",6601:"66f73f50",6801:"6897bd64",6839:"207cc86d",6999:"64627d58",7098:"e566890f",7118:"13f2c6a7",7243:"930b5bd6",7356:"0b394330",7484:"002bb639",7498:"97257edb",7502:"f4acd00b",7512:"27e1103c",7567:"0a1c17c1",7586:"05bd2bee",7705:"1dc17cbb",7720:"9691b150",7807:"a3ffb4bf",7824:"48ec5133",7829:"bbdb61d4",7859:"acd80658",7902:"b2c19227",7964:"7ef150a6",7968:"8658e795",8090:"af4cfb50",8240:"d4f52412",8267:"dbfe5354",8268:"7ed10065",8269:"2921c476",8294:"e344768e",8336:"0e5f0157",8392:"0768ab3a",8401:"9b189e06",8508:"d977358d",8571:"c0329697",8593:"42a61cdd",8607:"b96fee6d",8611:"870b467b",8625:"8df7c8bf",8649:"540f0784",8702:"c8d4fac3",8750:"56e811df",8765:"e2c3e49a",8822:"77921987",8862:"2272a76a",8913:"fd271a57",8963:"fca39a90",8990:"1753fc06",9033:"e3a15f6c",9048:"fbe061ed",9213:"7074cfcc",9227:"b79ed718",9264:"a73bd813",9315:"c9a9899a",9331:"fb999fe4",9363:"66313398",9459:"bcd99a3a",9482:"32df5989",9522:"cc51d0fb",9610:"f3b4d314",9640:"8da65214",9647:"a3e58221",9674:"dec60a8d",9712:"f5eaa1ca",9758:"bf4164d1",9763:"05004e42",9781:"fb5ede14",9897:"8be94bd0",9976:"68f5d90c",9986:"87289072"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},b="langflow-docs:",r.l=(e,a,d,c)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var b=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach(e=>e(d)),a)return a(d)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={17856424:"7586",17896441:"8401",20177945:"8392",44691977:"4876",56350599:"8593",69079906:"5739",70909872:"5333",80866714:"6839",86116998:"4907",d803fa53:"15",db8c087e:"30",a99a45c9:"38",e3f369d5:"44",b768a3a5:"78",a3702f61:"93",ae70dfbf:"126",dfa3dc90:"129",bb45d4f9:"253",b9acb8d9:"351","3d81f1cf":"375",a4232cf8:"446","76e36fb0":"534",c2e0ed62:"596",db4f3bbd:"598",ee87c775:"600",ffa0f8b1:"681","33b5ee95":"750","8bee5443":"879","1dfb8d43":"883","08b309e9":"889","03735ec1":"956",c141421f:"957","47e58a89":"1006","890279ba":"1151",f7e6b9d6:"1162","444a6da6":"1193","41d45d82":"1303",ec030ab7:"1308",fe6d5b4f:"1345","2fc7e024":"1408",c78349fc:"1446","0f761898":"1490","22dd74f7":"1567",ff8bad6c:"1703","8ad67c3b":"1861","5c3b537a":"1876",d375ca1d:"1895",b1582da4:"1966",common:"2076","755d162a":"2102","0f1bef30":"2116","1a4e3797":"2138",ca5faf5d:"2272",c4280da9:"2278",f2da9399:"2348","017d425f":"2360",c2ea283c:"2394","19bcb67f":"2423","46abd5bb":"2457","954b19af":"2460",cd086441:"2469","62f97fbe":"2472","1ab69cbd":"2475","622fd833":"2565","8cd0650d":"2651","43ad9ba4":"2741",e14655eb:"2752","32270e71":"2888","144a43f5":"2909",f0ad3fbb:"2969","1d50b418":"2990","87b7bbd6":"3035","6df123cd":"3038","1a29c454":"3140",c83c70df:"3147","67f2dc6c":"3164",b079b393:"3240",f0b67137:"3247","730da84e":"3263","6398c398":"3284","040305fb":"3345","2b4d41d7":"3353","8f633f11":"3361",efa0f9ee:"3368","3d67876e":"3387",c76bd485:"3468",c3c63498:"3500","2eb731bc":"3536","5a0b74d9":"3683",fbcfc90d:"4036",cb17b4e0:"4085",a8ca941b:"4090",d51059db:"4173","9a5e6f6b":"4263",f6a246db:"4314",e1a0f423:"4341","7b864b08":"4356","622bdc6f":"4384","3db73d6f":"4474",baacc2a1:"4573","6a9eca1a":"4612",e55b8e98:"4614",d3e886ab:"4644",ce43de4b:"4919","62266e9d":"4995","3c440e04":"5048",e9fe1d10:"5110","944c5f91":"5144",ff7f32ba:"5200",fb0a7a3f:"5217","99931d31":"5270","1b10d5ba":"5343",eba86ea4:"5397",a6d50436:"5412","1b208f60":"5660",b1379b2b:"5663",aba21aa0:"5742",ad42ff54:"5757",bbb8ec1d:"5838","69d616f2":"5903",e3536031:"5985","2fed9fb3":"6108",ef9aa223:"6224","6888b60e":"6256","45e5859c":"6289",cce672fb:"6311",a7b545c5:"6329","290c78e6":"6459",f13693f0:"6513","719cba95":"6538","7431813e":"6559","81bb6a5c":"6601",acefda8b:"6801",d5ec984b:"6999",a7bd4aaa:"7098","7996108c":"7118","5d9d4350":"7243","2ea623f2":"7356",ad01e028:"7484",e4400415:"7498","1a547ad8":"7502","4c09a7b3":"7512","4545d55b":"7567","2b91b6ca":"7705","3bfbe7c9":"7720","1a8a0a64":"7807","2b56b65e":"7824","7c27dc91":"7829","593d9d00":"7859","619c7267":"7902",ff35961a:"7964","9b0af131":"7968","6e85978c":"8090","0102a83b":"8240","02f8077b":"8267",a4b6c971:"8268",c7f91cbe:"8269",f2bedfce:"8294",e7fd9095:"8336","10dd1586":"8508",da1ad91e:"8571","681e5335":"8607","0c23d011":"8611","3a9e0e6c":"8625","7de42fc9":"8649","42962acd":"8702","8a484c94":"8750","1a2eaade":"8765","555ae514":"8822",e87b52ac:"8862","56c23a02":"8963","5f1a63c6":"8990","9f55b2fc":"9033",a94703ab:"9048","62d1268c":"9213","7e40e6b3":"9227",c7f32161:"9264","16faf8bf":"9315",ffcd190c:"9331",f3312674:"9363","97254d1d":"9459",a9c1003f:"9482","85dc2a2b":"9522","453ae64a":"9610","3b25a2ae":"9640","5e95c892":"9647",feac1fba:"9674",d8c8efb9:"9712","439d880a":"9758",aece522a:"9763",b796be74:"9781",f0eeb72e:"9897","230d5fdc":"9976",d1f3cfe5:"9986"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,d)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)d.push(f[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var b=new Promise((d,b)=>f=e[a]=[d,b]);d.push(f[2]=b);var c=r.p+r.u(a),t=new Error;r.l(c,d=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var b=d&&("load"===d.type?"missing":d.type),c=d&&d.target&&d.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+c+")",t.name="ChunkLoadError",t.type=b,t.request=c,f[1](t)}},"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,d)=>{var f,b,[c,t,o]=d,n=0;if(c.some(a=>0!==e[a])){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(d);n - + diff --git a/bundles-aiml.html b/bundles-aiml.html index fcdae52dba..94ffebfc16 100644 --- a/bundles-aiml.html +++ b/bundles-aiml.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-altk.html b/bundles-altk.html index 86dd321781..a5f495d7fc 100644 --- a/bundles-altk.html +++ b/bundles-altk.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-amazon.html b/bundles-amazon.html index 7ac47f48bc..f0555a804b 100644 --- a/bundles-amazon.html +++ b/bundles-amazon.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-anthropic.html b/bundles-anthropic.html index 8d1d1b2ba7..2454e8d649 100644 --- a/bundles-anthropic.html +++ b/bundles-anthropic.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-apify.html b/bundles-apify.html index 85ccdd18c6..03c5258053 100644 --- a/bundles-apify.html +++ b/bundles-apify.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-arxiv.html b/bundles-arxiv.html index 921cc544d1..288b8148be 100644 --- a/bundles-arxiv.html +++ b/bundles-arxiv.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-assemblyai.html b/bundles-assemblyai.html index 4789072336..0254a48eb3 100644 --- a/bundles-assemblyai.html +++ b/bundles-assemblyai.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-azure.html b/bundles-azure.html index 3ec92c2a87..11f11930d2 100644 --- a/bundles-azure.html +++ b/bundles-azure.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-baidu.html b/bundles-baidu.html index 3abf649fd7..263661385a 100644 --- a/bundles-baidu.html +++ b/bundles-baidu.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-bing.html b/bundles-bing.html index fc5e543bfe..d318880f10 100644 --- a/bundles-bing.html +++ b/bundles-bing.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-cassandra.html b/bundles-cassandra.html index a84991634b..3b5048c4c7 100644 --- a/bundles-cassandra.html +++ b/bundles-cassandra.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-chroma.html b/bundles-chroma.html index ec2bdc8847..b3490ebd3e 100644 --- a/bundles-chroma.html +++ b/bundles-chroma.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-cleanlab.html b/bundles-cleanlab.html index 1c9e47eff0..5897e5f77e 100644 --- a/bundles-cleanlab.html +++ b/bundles-cleanlab.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-clickhouse.html b/bundles-clickhouse.html index a2abeab028..7b1f41cf83 100644 --- a/bundles-clickhouse.html +++ b/bundles-clickhouse.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-cloudflare.html b/bundles-cloudflare.html index df8c7ac6b3..f8900ea036 100644 --- a/bundles-cloudflare.html +++ b/bundles-cloudflare.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-cohere.html b/bundles-cohere.html index e98ec1b047..af01d7fe4e 100644 --- a/bundles-cohere.html +++ b/bundles-cohere.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-cometapi.html b/bundles-cometapi.html index b049665665..75ae8fe590 100644 --- a/bundles-cometapi.html +++ b/bundles-cometapi.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-composio.html b/bundles-composio.html index a5a52be25c..f751ac513b 100644 --- a/bundles-composio.html +++ b/bundles-composio.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-couchbase.html b/bundles-couchbase.html index a40675e26b..fb289b04ac 100644 --- a/bundles-couchbase.html +++ b/bundles-couchbase.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-cuga.html b/bundles-cuga.html index 4c667844a7..865632600a 100644 --- a/bundles-cuga.html +++ b/bundles-cuga.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-datastax.html b/bundles-datastax.html index b2594b5ebf..a01734143d 100644 --- a/bundles-datastax.html +++ b/bundles-datastax.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-deepseek.html b/bundles-deepseek.html index cbbde0054a..111ee1711a 100644 --- a/bundles-deepseek.html +++ b/bundles-deepseek.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-docling.html b/bundles-docling.html index 788117531e..d8d2653be9 100644 --- a/bundles-docling.html +++ b/bundles-docling.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-duckduckgo.html b/bundles-duckduckgo.html index 0e5763978a..95e4d48b41 100644 --- a/bundles-duckduckgo.html +++ b/bundles-duckduckgo.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-elastic.html b/bundles-elastic.html index fee3ceb651..88f1d7ef5f 100644 --- a/bundles-elastic.html +++ b/bundles-elastic.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-exa.html b/bundles-exa.html index aaf84d0994..3aeb05dcce 100644 --- a/bundles-exa.html +++ b/bundles-exa.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-faiss.html b/bundles-faiss.html index 4405058a61..b5c5237bc0 100644 --- a/bundles-faiss.html +++ b/bundles-faiss.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-glean.html b/bundles-glean.html index a258d2d431..5d90f70cf0 100644 --- a/bundles-glean.html +++ b/bundles-glean.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-google.html b/bundles-google.html index 6e05ba72f8..1fd0abf622 100644 --- a/bundles-google.html +++ b/bundles-google.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-groq.html b/bundles-groq.html index 71e9b6cd8c..131d823c1c 100644 --- a/bundles-groq.html +++ b/bundles-groq.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-huggingface.html b/bundles-huggingface.html index 9729a273f3..cff47db1da 100644 --- a/bundles-huggingface.html +++ b/bundles-huggingface.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-ibm.html b/bundles-ibm.html index e1b4e2a5fd..3b25fa6279 100644 --- a/bundles-ibm.html +++ b/bundles-ibm.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-icosacomputing.html b/bundles-icosacomputing.html index cfeee8868b..ebe59ce139 100644 --- a/bundles-icosacomputing.html +++ b/bundles-icosacomputing.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-langchain.html b/bundles-langchain.html index 74c727a170..3ede2c2181 100644 --- a/bundles-langchain.html +++ b/bundles-langchain.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-lmstudio.html b/bundles-lmstudio.html index ff69341bbc..70558c2a24 100644 --- a/bundles-lmstudio.html +++ b/bundles-lmstudio.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-maritalk.html b/bundles-maritalk.html index cb04b158f7..99bceb7ffe 100644 --- a/bundles-maritalk.html +++ b/bundles-maritalk.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-mem0.html b/bundles-mem0.html index fe25e3d787..5e0dedd70a 100644 --- a/bundles-mem0.html +++ b/bundles-mem0.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-milvus.html b/bundles-milvus.html index 1c7b52f63a..b3f5644bd4 100644 --- a/bundles-milvus.html +++ b/bundles-milvus.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-mistralai.html b/bundles-mistralai.html index 09d1d28462..330c9590ee 100644 --- a/bundles-mistralai.html +++ b/bundles-mistralai.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-mongodb.html b/bundles-mongodb.html index cf205b1437..bac93ac1b1 100644 --- a/bundles-mongodb.html +++ b/bundles-mongodb.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-notion.html b/bundles-notion.html index fb729ac08f..e39d26554a 100644 --- a/bundles-notion.html +++ b/bundles-notion.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-novita.html b/bundles-novita.html index 0de73e6b74..dfd129d083 100644 --- a/bundles-novita.html +++ b/bundles-novita.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-nvidia.html b/bundles-nvidia.html index 4beab36db4..30f6fac95e 100644 --- a/bundles-nvidia.html +++ b/bundles-nvidia.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-ollama.html b/bundles-ollama.html index e6d08b2df1..038677fae7 100644 --- a/bundles-ollama.html +++ b/bundles-ollama.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-openai.html b/bundles-openai.html index b093e15343..4d9b143705 100644 --- a/bundles-openai.html +++ b/bundles-openai.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-openrouter.html b/bundles-openrouter.html index eb049d4ce6..ce81bf21ab 100644 --- a/bundles-openrouter.html +++ b/bundles-openrouter.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-perplexity.html b/bundles-perplexity.html index 27f227c4b3..a852d0010a 100644 --- a/bundles-perplexity.html +++ b/bundles-perplexity.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-pgvector.html b/bundles-pgvector.html index cfbc920cde..abb8788ca7 100644 --- a/bundles-pgvector.html +++ b/bundles-pgvector.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-pinecone.html b/bundles-pinecone.html index e5a12df7f8..2dbf78e43f 100644 --- a/bundles-pinecone.html +++ b/bundles-pinecone.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-qdrant.html b/bundles-qdrant.html index 9dbc37fa3c..c32962793e 100644 --- a/bundles-qdrant.html +++ b/bundles-qdrant.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-redis.html b/bundles-redis.html index 81b0a3f4f3..9b8c9a73b6 100644 --- a/bundles-redis.html +++ b/bundles-redis.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-sambanova.html b/bundles-sambanova.html index 15aabc084c..bee5f88a5f 100644 --- a/bundles-sambanova.html +++ b/bundles-sambanova.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-searchapi.html b/bundles-searchapi.html index 57fab18745..de2e91e143 100644 --- a/bundles-searchapi.html +++ b/bundles-searchapi.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-serper.html b/bundles-serper.html index 53333a48c6..23e3483386 100644 --- a/bundles-serper.html +++ b/bundles-serper.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-supabase.html b/bundles-supabase.html index ee6dde2692..01cb6ec3a8 100644 --- a/bundles-supabase.html +++ b/bundles-supabase.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-upstash.html b/bundles-upstash.html index 3566b1d8b5..3db1938c7d 100644 --- a/bundles-upstash.html +++ b/bundles-upstash.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-vectara.html b/bundles-vectara.html index f93d530a6a..85337c7ba8 100644 --- a/bundles-vectara.html +++ b/bundles-vectara.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-vertexai.html b/bundles-vertexai.html index e7bc84479e..a8df735869 100644 --- a/bundles-vertexai.html +++ b/bundles-vertexai.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-vllm.html b/bundles-vllm.html index dd9fde91aa..be3100e336 100644 --- a/bundles-vllm.html +++ b/bundles-vllm.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-weaviate.html b/bundles-weaviate.html index ce197a8b88..ffdd77a23b 100644 --- a/bundles-weaviate.html +++ b/bundles-weaviate.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-wikipedia.html b/bundles-wikipedia.html index f7fc918aa2..955165c84c 100644 --- a/bundles-wikipedia.html +++ b/bundles-wikipedia.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-xai.html b/bundles-xai.html index 5bb31faec7..3e0d0b6fad 100644 --- a/bundles-xai.html +++ b/bundles-xai.html @@ -24,7 +24,7 @@ - + diff --git a/calculator.html b/calculator.html index 0e0ecc1022..6162cc09a1 100644 --- a/calculator.html +++ b/calculator.html @@ -24,7 +24,7 @@ - + diff --git a/chat-input-and-output.html b/chat-input-and-output.html index 6246c06ab5..18a026d918 100644 --- a/chat-input-and-output.html +++ b/chat-input-and-output.html @@ -24,7 +24,7 @@ - + diff --git a/chat-with-files.html b/chat-with-files.html index f78d4bfa13..29e44a3fb1 100644 --- a/chat-with-files.html +++ b/chat-with-files.html @@ -24,7 +24,7 @@ - + diff --git a/chat-with-rag.html b/chat-with-rag.html index a015acd170..f2b494ac45 100644 --- a/chat-with-rag.html +++ b/chat-with-rag.html @@ -24,7 +24,7 @@ - + diff --git a/component-webhook.html b/component-webhook.html index 53c76657a0..fccb376d59 100644 --- a/component-webhook.html +++ b/component-webhook.html @@ -24,7 +24,7 @@ - + diff --git a/components-agents.html b/components-agents.html index 3f46219579..e64cb9d9eb 100644 --- a/components-agents.html +++ b/components-agents.html @@ -24,7 +24,7 @@ - + diff --git a/components-bundle-components.html b/components-bundle-components.html index f113051fbc..a3aa436b50 100644 --- a/components-bundle-components.html +++ b/components-bundle-components.html @@ -24,7 +24,7 @@ - + diff --git a/components-custom-components.html b/components-custom-components.html index de8657db51..125c1055d1 100644 --- a/components-custom-components.html +++ b/components-custom-components.html @@ -24,7 +24,7 @@ - + diff --git a/components-embedding-models.html b/components-embedding-models.html index 62cfcb4e11..7137b78500 100644 --- a/components-embedding-models.html +++ b/components-embedding-models.html @@ -24,7 +24,7 @@ - + diff --git a/components-models.html b/components-models.html index 9ea576bece..562df683f3 100644 --- a/components-models.html +++ b/components-models.html @@ -24,7 +24,7 @@ - + diff --git a/components-prompts.html b/components-prompts.html index 19f30cb2fd..90d5381040 100644 --- a/components-prompts.html +++ b/components-prompts.html @@ -24,7 +24,7 @@ - + diff --git a/concepts-components.html b/concepts-components.html index d0799c8347..2a54552c41 100644 --- a/concepts-components.html +++ b/concepts-components.html @@ -24,7 +24,7 @@ - + diff --git a/concepts-file-management.html b/concepts-file-management.html index 5eb3e837ee..13129d2d9c 100644 --- a/concepts-file-management.html +++ b/concepts-file-management.html @@ -24,7 +24,7 @@ - + diff --git a/concepts-flows-import.html b/concepts-flows-import.html index 5c0a34ea1b..f932a3801e 100644 --- a/concepts-flows-import.html +++ b/concepts-flows-import.html @@ -24,7 +24,7 @@ - + diff --git a/concepts-flows.html b/concepts-flows.html index 73020cd0dd..1aaf05f70d 100644 --- a/concepts-flows.html +++ b/concepts-flows.html @@ -24,7 +24,7 @@ - + diff --git a/concepts-overview.html b/concepts-overview.html index d5ecfebf03..488bbccc24 100644 --- a/concepts-overview.html +++ b/concepts-overview.html @@ -24,7 +24,7 @@ - + diff --git a/concepts-playground.html b/concepts-playground.html index c70234b3b2..c9f4901b14 100644 --- a/concepts-playground.html +++ b/concepts-playground.html @@ -24,7 +24,7 @@ - + diff --git a/concepts-publish.html b/concepts-publish.html index 93fa7bd3ec..ae197b03f0 100644 --- a/concepts-publish.html +++ b/concepts-publish.html @@ -24,7 +24,7 @@ - + diff --git a/concepts-voice-mode.html b/concepts-voice-mode.html index b96016b5e9..3da7059add 100644 --- a/concepts-voice-mode.html +++ b/concepts-voice-mode.html @@ -24,7 +24,7 @@ - + diff --git a/configuration-cli.html b/configuration-cli.html index f4398a34dc..e98ff85c52 100644 --- a/configuration-cli.html +++ b/configuration-cli.html @@ -24,7 +24,7 @@ - + diff --git a/configuration-custom-database.html b/configuration-custom-database.html index db840484f1..60dd94fea5 100644 --- a/configuration-custom-database.html +++ b/configuration-custom-database.html @@ -24,7 +24,7 @@ - + @@ -81,7 +81,9 @@ Langflow can more efficiently handle multiple users and larger workloads by usin
  • In your .env file, set LANGFLOW_DATABASE_URL to your PostgreSQL connection string:


    _10
    LANGFLOW_DATABASE_URL="postgresql://user:password@localhost:5432/dbname"

    -

    Langflow uses SQLAlchemy with the psycopg driver to pass SSL parameters directly to the PostgreSQL connection. The following SSL modes are supported:

    +

    Langflow uses SQLAlchemy with the psycopg driver to pass SSL parameters directly to the PostgreSQL connection.

    +
    PostgreSQL driver compatibility

    Langflow requires psycopg2-binary or psycopg[binary] as the PostgreSQL driver. The asyncpg driver is not compatible with Langflow's current database schema due to stricter timezone handling requirements.

    +

    The following SSL modes are supported:

    • sslmode=require: Requires SSL connection but doesn't verify server certificate. This option is the least secure, but acceptable for most use cases.

      diff --git a/configuration-global-variables.html b/configuration-global-variables.html index 3ddcc5602f..61ebc2ef8b 100644 --- a/configuration-global-variables.html +++ b/configuration-global-variables.html @@ -24,7 +24,7 @@ - + diff --git a/contributing-bundles.html b/contributing-bundles.html index 7283a0f611..0579e14961 100644 --- a/contributing-bundles.html +++ b/contributing-bundles.html @@ -24,7 +24,7 @@ - + diff --git a/contributing-community.html b/contributing-community.html index b16962a04d..8cd8709ac9 100644 --- a/contributing-community.html +++ b/contributing-community.html @@ -24,7 +24,7 @@ - + diff --git a/contributing-component-tests.html b/contributing-component-tests.html index ad439b5654..2f33132ecd 100644 --- a/contributing-component-tests.html +++ b/contributing-component-tests.html @@ -24,7 +24,7 @@ - + diff --git a/contributing-components.html b/contributing-components.html index cfcf56fbb9..394bc57524 100644 --- a/contributing-components.html +++ b/contributing-components.html @@ -24,7 +24,7 @@ - + diff --git a/contributing-github-issues.html b/contributing-github-issues.html index 7bfe31d9eb..86a319b091 100644 --- a/contributing-github-issues.html +++ b/contributing-github-issues.html @@ -24,7 +24,7 @@ - + diff --git a/contributing-how-to-contribute.html b/contributing-how-to-contribute.html index 342adcc4bd..71f299c00f 100644 --- a/contributing-how-to-contribute.html +++ b/contributing-how-to-contribute.html @@ -24,7 +24,7 @@ - + diff --git a/contributing-telemetry.html b/contributing-telemetry.html index aeacae2714..df06dedee2 100644 --- a/contributing-telemetry.html +++ b/contributing-telemetry.html @@ -24,7 +24,7 @@ - + diff --git a/contributing-templates.html b/contributing-templates.html index 9485ac5a29..69831c2cad 100644 --- a/contributing-templates.html +++ b/contributing-templates.html @@ -24,7 +24,7 @@ - + diff --git a/current-date.html b/current-date.html index 7623f1d08a..9b42375b21 100644 --- a/current-date.html +++ b/current-date.html @@ -24,7 +24,7 @@ - + diff --git a/data-operations.html b/data-operations.html index 14680fdc0c..34fcc17329 100644 --- a/data-operations.html +++ b/data-operations.html @@ -24,7 +24,7 @@ - + diff --git a/data-types.html b/data-types.html index 8db1b8bad4..25a8b0f379 100644 --- a/data-types.html +++ b/data-types.html @@ -24,7 +24,7 @@ - + diff --git a/dataframe-operations.html b/dataframe-operations.html index feae51691a..111f9cac1a 100644 --- a/dataframe-operations.html +++ b/dataframe-operations.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-architecture.html b/deployment-architecture.html index 2f0b3f0ab4..70bf65d319 100644 --- a/deployment-architecture.html +++ b/deployment-architecture.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-caddyfile.html b/deployment-caddyfile.html index 75a3c41b03..25bef37ac6 100644 --- a/deployment-caddyfile.html +++ b/deployment-caddyfile.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-docker.html b/deployment-docker.html index de505168f9..129ef8e173 100644 --- a/deployment-docker.html +++ b/deployment-docker.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-gcp.html b/deployment-gcp.html index 4df3d2d19d..058d14978b 100644 --- a/deployment-gcp.html +++ b/deployment-gcp.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-hugging-face-spaces.html b/deployment-hugging-face-spaces.html index be5360404c..164f673bce 100644 --- a/deployment-hugging-face-spaces.html +++ b/deployment-hugging-face-spaces.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-kubernetes-dev.html b/deployment-kubernetes-dev.html index 665dfb6a4e..68e9011718 100644 --- a/deployment-kubernetes-dev.html +++ b/deployment-kubernetes-dev.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-kubernetes-prod.html b/deployment-kubernetes-prod.html index 4b7c2f537f..36d7236196 100644 --- a/deployment-kubernetes-prod.html +++ b/deployment-kubernetes-prod.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-nginx-ssl.html b/deployment-nginx-ssl.html index c66768470e..457841431d 100644 --- a/deployment-nginx-ssl.html +++ b/deployment-nginx-ssl.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-overview.html b/deployment-overview.html index 2fe0679657..ab391d4fa1 100644 --- a/deployment-overview.html +++ b/deployment-overview.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-prod-best-practices.html b/deployment-prod-best-practices.html index 46909d3356..954154dabc 100644 --- a/deployment-prod-best-practices.html +++ b/deployment-prod-best-practices.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-public-server.html b/deployment-public-server.html index d4939d47a3..a96c6e21cf 100644 --- a/deployment-public-server.html +++ b/deployment-public-server.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-railway.html b/deployment-railway.html index 95929cdd5a..9fb1767995 100644 --- a/deployment-railway.html +++ b/deployment-railway.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-render.html b/deployment-render.html index 4ae5e31a9b..52c9562132 100644 --- a/deployment-render.html +++ b/deployment-render.html @@ -24,7 +24,7 @@ - + diff --git a/develop-application.html b/develop-application.html index a7c47452db..4b0c9bcb07 100644 --- a/develop-application.html +++ b/develop-application.html @@ -24,7 +24,7 @@ - + diff --git a/directory.html b/directory.html index 4eedf16174..dfb1831d4e 100644 --- a/directory.html +++ b/directory.html @@ -24,7 +24,7 @@ - + diff --git a/dynamic-create-data.html b/dynamic-create-data.html index 916b05f310..1acbc7d30e 100644 --- a/dynamic-create-data.html +++ b/dynamic-create-data.html @@ -24,7 +24,7 @@ - + diff --git a/enterprise-database-guide.html b/enterprise-database-guide.html index 24e26a5002..fa141c529c 100644 --- a/enterprise-database-guide.html +++ b/enterprise-database-guide.html @@ -24,7 +24,7 @@ - + diff --git a/environment-variables.html b/environment-variables.html index e17df75c47..163485ae63 100644 --- a/environment-variables.html +++ b/environment-variables.html @@ -24,7 +24,7 @@ - + diff --git a/get-started-installation.html b/get-started-installation.html index 940d22e947..8f3a8f9e4a 100644 --- a/get-started-installation.html +++ b/get-started-installation.html @@ -24,7 +24,7 @@ - + diff --git a/get-started-quickstart.html b/get-started-quickstart.html index 1bf2157f63..5d0dbae34a 100644 --- a/get-started-quickstart.html +++ b/get-started-quickstart.html @@ -24,7 +24,7 @@ - + diff --git a/if-else.html b/if-else.html index 5f52a225f9..305d87e875 100644 --- a/if-else.html +++ b/if-else.html @@ -24,7 +24,7 @@ - + diff --git a/index.html b/index.html index 47ef459433..4533214b8d 100644 --- a/index.html +++ b/index.html @@ -24,7 +24,7 @@ - + diff --git a/install-custom-dependencies.html b/install-custom-dependencies.html index a37728e6e5..6b85f47638 100644 --- a/install-custom-dependencies.html +++ b/install-custom-dependencies.html @@ -24,7 +24,7 @@ - + diff --git a/integrations-arize.html b/integrations-arize.html index 5679d8c816..ffae6507af 100644 --- a/integrations-arize.html +++ b/integrations-arize.html @@ -24,7 +24,7 @@ - + diff --git a/integrations-instana-traceloop.html b/integrations-instana-traceloop.html index daf6c858f5..a4f88572ea 100644 --- a/integrations-instana-traceloop.html +++ b/integrations-instana-traceloop.html @@ -24,7 +24,7 @@ - + diff --git a/integrations-langfuse.html b/integrations-langfuse.html index 3ac2703978..15db7c26d5 100644 --- a/integrations-langfuse.html +++ b/integrations-langfuse.html @@ -24,7 +24,7 @@ - + diff --git a/integrations-langsmith.html b/integrations-langsmith.html index 69003a9b8e..5d0c7f7e65 100644 --- a/integrations-langsmith.html +++ b/integrations-langsmith.html @@ -24,7 +24,7 @@ - + diff --git a/integrations-langwatch.html b/integrations-langwatch.html index 9929feca06..598604c459 100644 --- a/integrations-langwatch.html +++ b/integrations-langwatch.html @@ -24,7 +24,7 @@ - + diff --git a/integrations-opik.html b/integrations-opik.html index 237fc80530..427ec35a67 100644 --- a/integrations-opik.html +++ b/integrations-opik.html @@ -24,7 +24,7 @@ - + diff --git a/legacy-core-components.html b/legacy-core-components.html index 4c0ed7c802..4375228f56 100644 --- a/legacy-core-components.html +++ b/legacy-core-components.html @@ -24,7 +24,7 @@ - + diff --git a/llm-selector.html b/llm-selector.html index f205ed044e..3681ff0132 100644 --- a/llm-selector.html +++ b/llm-selector.html @@ -24,7 +24,7 @@ - + diff --git a/logging.html b/logging.html index 547549d416..2b9037c60e 100644 --- a/logging.html +++ b/logging.html @@ -24,7 +24,7 @@ - + diff --git a/loop.html b/loop.html index 48dcd47400..0fcdcc3663 100644 --- a/loop.html +++ b/loop.html @@ -24,7 +24,7 @@ - + diff --git a/luna-for-langflow.html b/luna-for-langflow.html index ea4c79e26d..f433b49dbb 100644 --- a/luna-for-langflow.html +++ b/luna-for-langflow.html @@ -24,7 +24,7 @@ - + diff --git a/mcp-client.html b/mcp-client.html index 16b3fecedd..1c31912485 100644 --- a/mcp-client.html +++ b/mcp-client.html @@ -24,7 +24,7 @@ - + diff --git a/mcp-component-astra.html b/mcp-component-astra.html index 0614e3f10d..a1d1830002 100644 --- a/mcp-component-astra.html +++ b/mcp-component-astra.html @@ -24,7 +24,7 @@ - + diff --git a/mcp-server.html b/mcp-server.html index c23228d073..5cc4f44e5b 100644 --- a/mcp-server.html +++ b/mcp-server.html @@ -24,7 +24,7 @@ - + diff --git a/mcp-tools.html b/mcp-tools.html index 9e6349c9fa..16d6efcf48 100644 --- a/mcp-tools.html +++ b/mcp-tools.html @@ -24,7 +24,7 @@ - + diff --git a/mcp-tutorial.html b/mcp-tutorial.html index 83417c30d7..84c71387eb 100644 --- a/mcp-tutorial.html +++ b/mcp-tutorial.html @@ -24,7 +24,7 @@ - + diff --git a/memory.html b/memory.html index d78950ae76..af4d7b5596 100644 --- a/memory.html +++ b/memory.html @@ -24,7 +24,7 @@ - + diff --git a/message-history.html b/message-history.html index 311c6db778..13b31ff3b3 100644 --- a/message-history.html +++ b/message-history.html @@ -24,7 +24,7 @@ - + diff --git a/mock-data.html b/mock-data.html index cb8cdeff85..85e62b7c7e 100644 --- a/mock-data.html +++ b/mock-data.html @@ -24,7 +24,7 @@ - + diff --git a/notify-and-listen.html b/notify-and-listen.html index e1f0b7d840..4229b9978d 100644 --- a/notify-and-listen.html +++ b/notify-and-listen.html @@ -24,7 +24,7 @@ - + diff --git a/parser.html b/parser.html index 846ecbf07d..bba6507f2e 100644 --- a/parser.html +++ b/parser.html @@ -24,7 +24,7 @@ - + diff --git a/python-interpreter.html b/python-interpreter.html index bec43f575a..49058396ec 100644 --- a/python-interpreter.html +++ b/python-interpreter.html @@ -24,7 +24,7 @@ - + diff --git a/read-file.html b/read-file.html index e00bf81b03..fe6b8a0ab4 100644 --- a/read-file.html +++ b/read-file.html @@ -24,7 +24,7 @@ - + diff --git a/release-notes.html b/release-notes.html index 79097b4547..e170444ddb 100644 --- a/release-notes.html +++ b/release-notes.html @@ -24,7 +24,7 @@ - + diff --git a/run-flow.html b/run-flow.html index d59401b62f..a925e24a9e 100644 --- a/run-flow.html +++ b/run-flow.html @@ -24,7 +24,7 @@ - + diff --git a/search.html b/search.html index 3cd79f7e94..0c2ea43f59 100644 --- a/search.html +++ b/search.html @@ -24,7 +24,7 @@ - + diff --git a/security.html b/security.html index 83639b0a99..48c3117b08 100644 --- a/security.html +++ b/security.html @@ -24,7 +24,7 @@ - + diff --git a/session-id.html b/session-id.html index dccedda443..a6683ffb58 100644 --- a/session-id.html +++ b/session-id.html @@ -24,7 +24,7 @@ - + diff --git a/sitemap.xml b/sitemap.xml index 23696102f2..898ea2a666 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://docs.langflow.org/apihttps://docs.langflow.org/api/openapi.jsonhttps://docs.langflow.org/api/openapi.yamlhttps://docs.langflow.org/searchhttps://docs.langflow.org/agent-tutorial2026-01-15T17:08:20.000Zhttps://docs.langflow.org/agents2026-01-15T17:08:20.000Zhttps://docs.langflow.org/agents-tools2026-01-15T17:08:20.000Zhttps://docs.langflow.org/api-build2026-01-15T17:08:20.000Zhttps://docs.langflow.org/api-files2026-01-15T17:08:20.000Zhttps://docs.langflow.org/api-flows2026-01-15T17:08:20.000Zhttps://docs.langflow.org/api-flows-run2026-01-15T17:08:20.000Zhttps://docs.langflow.org/api-keys-and-authentication2026-01-15T17:08:20.000Zhttps://docs.langflow.org/api-logs2026-01-15T17:08:20.000Zhttps://docs.langflow.org/api-monitor2026-01-15T17:08:20.000Zhttps://docs.langflow.org/api-openai-responses2026-01-15T17:08:20.000Zhttps://docs.langflow.org/api-projects2026-01-15T17:08:20.000Zhttps://docs.langflow.org/api-reference-api-examples2026-01-15T17:08:20.000Zhttps://docs.langflow.org/api-request2026-01-15T17:08:20.000Zhttps://docs.langflow.org/api-users2026-01-15T17:08:20.000Zhttps://docs.langflow.org/batch-run2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-aiml2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-altk2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-amazon2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-anthropic2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-apify2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-arxiv2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-assemblyai2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-azure2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-baidu2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-bing2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-cassandra2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-chroma2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-cleanlab2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-clickhouse2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-cloudflare2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-cohere2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-cometapi2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-composio2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-couchbase2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-cuga2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-datastax2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-deepseek2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-docling2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-duckduckgo2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-elastic2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-exa2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-faiss2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-glean2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-google2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-groq2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-huggingface2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-ibm2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-icosacomputing2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-langchain2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-lmstudio2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-maritalk2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-mem02026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-milvus2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-mistralai2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-mongodb2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-notion2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-novita2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-nvidia2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-ollama2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-openai2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-openrouter2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-perplexity2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-pgvector2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-pinecone2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-qdrant2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-redis2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-sambanova2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-searchapi2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-serper2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-supabase2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-upstash2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-vectara2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-vertexai2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-vllm2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-weaviate2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-wikipedia2026-01-15T17:08:20.000Zhttps://docs.langflow.org/bundles-xai2026-01-15T17:08:20.000Zhttps://docs.langflow.org/calculator2026-01-15T17:08:20.000Zhttps://docs.langflow.org/chat-input-and-output2026-01-15T17:08:20.000Zhttps://docs.langflow.org/chat-with-files2026-01-15T17:08:20.000Zhttps://docs.langflow.org/chat-with-rag2026-01-15T17:08:20.000Zhttps://docs.langflow.org/component-webhook2026-01-15T17:08:20.000Zhttps://docs.langflow.org/components-agents2026-01-15T17:08:20.000Zhttps://docs.langflow.org/components-bundle-components2026-01-15T17:08:20.000Zhttps://docs.langflow.org/components-custom-components2026-01-15T17:08:20.000Zhttps://docs.langflow.org/components-embedding-models2026-01-15T17:08:20.000Zhttps://docs.langflow.org/components-models2026-01-15T17:08:20.000Zhttps://docs.langflow.org/components-prompts2026-01-15T17:08:20.000Zhttps://docs.langflow.org/concepts-components2026-01-15T17:08:20.000Zhttps://docs.langflow.org/concepts-file-management2026-01-15T17:08:20.000Zhttps://docs.langflow.org/concepts-flows2026-01-15T17:08:20.000Zhttps://docs.langflow.org/concepts-flows-import2026-01-15T17:08:20.000Zhttps://docs.langflow.org/concepts-overview2026-01-15T17:08:20.000Zhttps://docs.langflow.org/concepts-playground2026-01-15T17:08:20.000Zhttps://docs.langflow.org/concepts-publish2026-01-15T17:08:20.000Zhttps://docs.langflow.org/concepts-voice-mode2026-01-15T17:08:20.000Zhttps://docs.langflow.org/configuration-cli2026-01-15T17:08:20.000Zhttps://docs.langflow.org/configuration-custom-database2026-01-15T17:08:20.000Zhttps://docs.langflow.org/configuration-global-variables2026-01-15T17:08:20.000Zhttps://docs.langflow.org/contributing-bundles2026-01-15T17:08:20.000Zhttps://docs.langflow.org/contributing-community2026-01-15T17:08:20.000Zhttps://docs.langflow.org/contributing-component-tests2026-01-15T17:08:20.000Zhttps://docs.langflow.org/contributing-components2026-01-15T17:08:20.000Zhttps://docs.langflow.org/contributing-github-issues2026-01-15T17:08:20.000Zhttps://docs.langflow.org/contributing-how-to-contribute2026-01-15T17:08:20.000Zhttps://docs.langflow.org/contributing-telemetry2026-01-15T17:08:20.000Zhttps://docs.langflow.org/contributing-templates2026-01-15T17:08:20.000Zhttps://docs.langflow.org/current-date2026-01-15T17:08:20.000Zhttps://docs.langflow.org/data-operations2026-01-15T17:08:20.000Zhttps://docs.langflow.org/data-types2026-01-15T17:08:20.000Zhttps://docs.langflow.org/dataframe-operations2026-01-15T17:08:20.000Zhttps://docs.langflow.org/deployment-architecture2026-01-15T17:08:20.000Zhttps://docs.langflow.org/deployment-caddyfile2026-01-15T17:08:20.000Zhttps://docs.langflow.org/deployment-docker2026-01-15T17:08:20.000Zhttps://docs.langflow.org/deployment-gcp2026-01-15T17:08:20.000Zhttps://docs.langflow.org/deployment-hugging-face-spaces2026-01-15T17:08:20.000Zhttps://docs.langflow.org/deployment-kubernetes-dev2026-01-15T17:08:20.000Zhttps://docs.langflow.org/deployment-kubernetes-prod2026-01-15T17:08:20.000Zhttps://docs.langflow.org/deployment-nginx-ssl2026-01-15T17:08:20.000Zhttps://docs.langflow.org/deployment-overview2026-01-15T17:08:20.000Zhttps://docs.langflow.org/deployment-prod-best-practices2026-01-15T17:08:20.000Zhttps://docs.langflow.org/deployment-public-server2026-01-15T17:08:20.000Zhttps://docs.langflow.org/deployment-railway2026-01-15T17:08:20.000Zhttps://docs.langflow.org/deployment-render2026-01-15T17:08:20.000Zhttps://docs.langflow.org/develop-application2026-01-15T17:08:20.000Zhttps://docs.langflow.org/directory2026-01-15T17:08:20.000Zhttps://docs.langflow.org/dynamic-create-data2026-01-15T17:08:20.000Zhttps://docs.langflow.org/enterprise-database-guide2026-01-15T17:08:20.000Zhttps://docs.langflow.org/environment-variables2026-01-15T17:08:20.000Zhttps://docs.langflow.org/get-started-installation2026-01-15T17:08:20.000Zhttps://docs.langflow.org/get-started-quickstart2026-01-15T17:08:20.000Zhttps://docs.langflow.org/if-else2026-01-15T17:08:20.000Zhttps://docs.langflow.org/install-custom-dependencies2026-01-15T17:08:20.000Zhttps://docs.langflow.org/integrations-arize2026-01-15T17:08:20.000Zhttps://docs.langflow.org/integrations-instana-traceloop2026-01-15T17:08:20.000Zhttps://docs.langflow.org/integrations-langfuse2026-01-15T17:08:20.000Zhttps://docs.langflow.org/integrations-langsmith2026-01-15T17:08:20.000Zhttps://docs.langflow.org/integrations-langwatch2026-01-15T17:08:20.000Zhttps://docs.langflow.org/integrations-opik2026-01-15T17:08:20.000Zhttps://docs.langflow.org/legacy-core-components2026-01-15T17:08:20.000Zhttps://docs.langflow.org/llm-selector2026-01-15T17:08:20.000Zhttps://docs.langflow.org/logging2026-01-15T17:08:20.000Zhttps://docs.langflow.org/loop2026-01-15T17:08:20.000Zhttps://docs.langflow.org/luna-for-langflow2026-01-15T17:08:20.000Zhttps://docs.langflow.org/mcp-client2026-01-15T17:08:20.000Zhttps://docs.langflow.org/mcp-component-astra2026-01-15T17:08:20.000Zhttps://docs.langflow.org/mcp-server2026-01-15T17:08:20.000Zhttps://docs.langflow.org/mcp-tools2026-01-15T17:08:20.000Zhttps://docs.langflow.org/mcp-tutorial2026-01-15T17:08:20.000Zhttps://docs.langflow.org/memory2026-01-15T17:08:20.000Zhttps://docs.langflow.org/message-history2026-01-15T17:08:20.000Zhttps://docs.langflow.org/mock-data2026-01-15T17:08:20.000Zhttps://docs.langflow.org/notify-and-listen2026-01-15T17:08:20.000Zhttps://docs.langflow.org/parser2026-01-15T17:08:20.000Zhttps://docs.langflow.org/python-interpreter2026-01-15T17:08:20.000Zhttps://docs.langflow.org/read-file2026-01-15T17:08:20.000Zhttps://docs.langflow.org/release-notes2026-01-15T17:08:20.000Zhttps://docs.langflow.org/run-flow2026-01-15T17:08:20.000Zhttps://docs.langflow.org/security2026-01-15T17:08:20.000Zhttps://docs.langflow.org/session-id2026-01-15T17:08:20.000Zhttps://docs.langflow.org/smart-router2026-01-15T17:08:20.000Zhttps://docs.langflow.org/smart-transform2026-01-15T17:08:20.000Zhttps://docs.langflow.org/split-text2026-01-15T17:08:20.000Zhttps://docs.langflow.org/sql-database2026-01-15T17:08:20.000Zhttps://docs.langflow.org/structured-output2026-01-15T17:08:20.000Zhttps://docs.langflow.org/text-input-and-output2026-01-15T17:08:20.000Zhttps://docs.langflow.org/troubleshoot2026-01-15T17:08:20.000Zhttps://docs.langflow.org/type-convert2026-01-15T17:08:20.000Zhttps://docs.langflow.org/typescript-client2026-01-15T17:08:20.000Zhttps://docs.langflow.org/url2026-01-15T17:08:20.000Zhttps://docs.langflow.org/web-search2026-01-15T17:08:20.000Zhttps://docs.langflow.org/webhook2026-01-15T17:08:20.000Zhttps://docs.langflow.org/write-file2026-01-15T17:08:20.000Zhttps://docs.langflow.org/2026-01-15T17:08:20.000Z \ No newline at end of file +https://docs.langflow.org/apihttps://docs.langflow.org/api/openapi.jsonhttps://docs.langflow.org/api/openapi.yamlhttps://docs.langflow.org/searchhttps://docs.langflow.org/agent-tutorial2026-01-15T17:53:41.000Zhttps://docs.langflow.org/agents2026-01-15T17:53:41.000Zhttps://docs.langflow.org/agents-tools2026-01-15T17:53:41.000Zhttps://docs.langflow.org/api-build2026-01-15T17:53:41.000Zhttps://docs.langflow.org/api-files2026-01-15T17:53:41.000Zhttps://docs.langflow.org/api-flows2026-01-15T17:53:41.000Zhttps://docs.langflow.org/api-flows-run2026-01-15T17:53:41.000Zhttps://docs.langflow.org/api-keys-and-authentication2026-01-15T17:53:41.000Zhttps://docs.langflow.org/api-logs2026-01-15T17:53:41.000Zhttps://docs.langflow.org/api-monitor2026-01-15T17:53:41.000Zhttps://docs.langflow.org/api-openai-responses2026-01-15T17:53:41.000Zhttps://docs.langflow.org/api-projects2026-01-15T17:53:41.000Zhttps://docs.langflow.org/api-reference-api-examples2026-01-15T17:53:41.000Zhttps://docs.langflow.org/api-request2026-01-15T17:53:41.000Zhttps://docs.langflow.org/api-users2026-01-15T17:53:41.000Zhttps://docs.langflow.org/batch-run2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-aiml2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-altk2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-amazon2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-anthropic2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-apify2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-arxiv2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-assemblyai2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-azure2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-baidu2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-bing2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-cassandra2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-chroma2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-cleanlab2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-clickhouse2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-cloudflare2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-cohere2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-cometapi2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-composio2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-couchbase2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-cuga2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-datastax2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-deepseek2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-docling2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-duckduckgo2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-elastic2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-exa2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-faiss2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-glean2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-google2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-groq2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-huggingface2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-ibm2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-icosacomputing2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-langchain2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-lmstudio2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-maritalk2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-mem02026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-milvus2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-mistralai2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-mongodb2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-notion2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-novita2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-nvidia2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-ollama2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-openai2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-openrouter2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-perplexity2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-pgvector2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-pinecone2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-qdrant2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-redis2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-sambanova2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-searchapi2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-serper2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-supabase2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-upstash2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-vectara2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-vertexai2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-vllm2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-weaviate2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-wikipedia2026-01-15T17:53:41.000Zhttps://docs.langflow.org/bundles-xai2026-01-15T17:53:41.000Zhttps://docs.langflow.org/calculator2026-01-15T17:53:41.000Zhttps://docs.langflow.org/chat-input-and-output2026-01-15T17:53:41.000Zhttps://docs.langflow.org/chat-with-files2026-01-15T17:53:41.000Zhttps://docs.langflow.org/chat-with-rag2026-01-15T17:53:41.000Zhttps://docs.langflow.org/component-webhook2026-01-15T17:53:41.000Zhttps://docs.langflow.org/components-agents2026-01-15T17:53:41.000Zhttps://docs.langflow.org/components-bundle-components2026-01-15T17:53:41.000Zhttps://docs.langflow.org/components-custom-components2026-01-15T17:53:41.000Zhttps://docs.langflow.org/components-embedding-models2026-01-15T17:53:41.000Zhttps://docs.langflow.org/components-models2026-01-15T17:53:41.000Zhttps://docs.langflow.org/components-prompts2026-01-15T17:53:41.000Zhttps://docs.langflow.org/concepts-components2026-01-15T17:53:41.000Zhttps://docs.langflow.org/concepts-file-management2026-01-15T17:53:41.000Zhttps://docs.langflow.org/concepts-flows2026-01-15T17:53:41.000Zhttps://docs.langflow.org/concepts-flows-import2026-01-15T17:53:41.000Zhttps://docs.langflow.org/concepts-overview2026-01-15T17:53:41.000Zhttps://docs.langflow.org/concepts-playground2026-01-15T17:53:41.000Zhttps://docs.langflow.org/concepts-publish2026-01-15T17:53:41.000Zhttps://docs.langflow.org/concepts-voice-mode2026-01-15T17:53:41.000Zhttps://docs.langflow.org/configuration-cli2026-01-15T17:53:41.000Zhttps://docs.langflow.org/configuration-custom-database2026-01-15T17:53:41.000Zhttps://docs.langflow.org/configuration-global-variables2026-01-15T17:53:41.000Zhttps://docs.langflow.org/contributing-bundles2026-01-15T17:53:41.000Zhttps://docs.langflow.org/contributing-community2026-01-15T17:53:41.000Zhttps://docs.langflow.org/contributing-component-tests2026-01-15T17:53:41.000Zhttps://docs.langflow.org/contributing-components2026-01-15T17:53:41.000Zhttps://docs.langflow.org/contributing-github-issues2026-01-15T17:53:41.000Zhttps://docs.langflow.org/contributing-how-to-contribute2026-01-15T17:53:41.000Zhttps://docs.langflow.org/contributing-telemetry2026-01-15T17:53:41.000Zhttps://docs.langflow.org/contributing-templates2026-01-15T17:53:41.000Zhttps://docs.langflow.org/current-date2026-01-15T17:53:41.000Zhttps://docs.langflow.org/data-operations2026-01-15T17:53:41.000Zhttps://docs.langflow.org/data-types2026-01-15T17:53:41.000Zhttps://docs.langflow.org/dataframe-operations2026-01-15T17:53:41.000Zhttps://docs.langflow.org/deployment-architecture2026-01-15T17:53:41.000Zhttps://docs.langflow.org/deployment-caddyfile2026-01-15T17:53:41.000Zhttps://docs.langflow.org/deployment-docker2026-01-15T17:53:41.000Zhttps://docs.langflow.org/deployment-gcp2026-01-15T17:53:41.000Zhttps://docs.langflow.org/deployment-hugging-face-spaces2026-01-15T17:53:41.000Zhttps://docs.langflow.org/deployment-kubernetes-dev2026-01-15T17:53:41.000Zhttps://docs.langflow.org/deployment-kubernetes-prod2026-01-15T17:53:41.000Zhttps://docs.langflow.org/deployment-nginx-ssl2026-01-15T17:53:41.000Zhttps://docs.langflow.org/deployment-overview2026-01-15T17:53:41.000Zhttps://docs.langflow.org/deployment-prod-best-practices2026-01-15T17:53:41.000Zhttps://docs.langflow.org/deployment-public-server2026-01-15T17:53:41.000Zhttps://docs.langflow.org/deployment-railway2026-01-15T17:53:41.000Zhttps://docs.langflow.org/deployment-render2026-01-15T17:53:41.000Zhttps://docs.langflow.org/develop-application2026-01-15T17:53:41.000Zhttps://docs.langflow.org/directory2026-01-15T17:53:41.000Zhttps://docs.langflow.org/dynamic-create-data2026-01-15T17:53:41.000Zhttps://docs.langflow.org/enterprise-database-guide2026-01-15T17:53:41.000Zhttps://docs.langflow.org/environment-variables2026-01-15T17:53:41.000Zhttps://docs.langflow.org/get-started-installation2026-01-15T17:53:41.000Zhttps://docs.langflow.org/get-started-quickstart2026-01-15T17:53:41.000Zhttps://docs.langflow.org/if-else2026-01-15T17:53:41.000Zhttps://docs.langflow.org/install-custom-dependencies2026-01-15T17:53:41.000Zhttps://docs.langflow.org/integrations-arize2026-01-15T17:53:41.000Zhttps://docs.langflow.org/integrations-instana-traceloop2026-01-15T17:53:41.000Zhttps://docs.langflow.org/integrations-langfuse2026-01-15T17:53:41.000Zhttps://docs.langflow.org/integrations-langsmith2026-01-15T17:53:41.000Zhttps://docs.langflow.org/integrations-langwatch2026-01-15T17:53:41.000Zhttps://docs.langflow.org/integrations-opik2026-01-15T17:53:41.000Zhttps://docs.langflow.org/legacy-core-components2026-01-15T17:53:41.000Zhttps://docs.langflow.org/llm-selector2026-01-15T17:53:41.000Zhttps://docs.langflow.org/logging2026-01-15T17:53:41.000Zhttps://docs.langflow.org/loop2026-01-15T17:53:41.000Zhttps://docs.langflow.org/luna-for-langflow2026-01-15T17:53:41.000Zhttps://docs.langflow.org/mcp-client2026-01-15T17:53:41.000Zhttps://docs.langflow.org/mcp-component-astra2026-01-15T17:53:41.000Zhttps://docs.langflow.org/mcp-server2026-01-15T17:53:41.000Zhttps://docs.langflow.org/mcp-tools2026-01-15T17:53:41.000Zhttps://docs.langflow.org/mcp-tutorial2026-01-15T17:53:41.000Zhttps://docs.langflow.org/memory2026-01-15T17:53:41.000Zhttps://docs.langflow.org/message-history2026-01-15T17:53:41.000Zhttps://docs.langflow.org/mock-data2026-01-15T17:53:41.000Zhttps://docs.langflow.org/notify-and-listen2026-01-15T17:53:41.000Zhttps://docs.langflow.org/parser2026-01-15T17:53:41.000Zhttps://docs.langflow.org/python-interpreter2026-01-15T17:53:41.000Zhttps://docs.langflow.org/read-file2026-01-15T17:53:41.000Zhttps://docs.langflow.org/release-notes2026-01-15T17:53:41.000Zhttps://docs.langflow.org/run-flow2026-01-15T17:53:41.000Zhttps://docs.langflow.org/security2026-01-15T17:53:41.000Zhttps://docs.langflow.org/session-id2026-01-15T17:53:41.000Zhttps://docs.langflow.org/smart-router2026-01-15T17:53:41.000Zhttps://docs.langflow.org/smart-transform2026-01-15T17:53:41.000Zhttps://docs.langflow.org/split-text2026-01-15T17:53:41.000Zhttps://docs.langflow.org/sql-database2026-01-15T17:53:41.000Zhttps://docs.langflow.org/structured-output2026-01-15T17:53:41.000Zhttps://docs.langflow.org/text-input-and-output2026-01-15T17:53:41.000Zhttps://docs.langflow.org/troubleshoot2026-01-15T17:53:41.000Zhttps://docs.langflow.org/type-convert2026-01-15T17:53:41.000Zhttps://docs.langflow.org/typescript-client2026-01-15T17:53:41.000Zhttps://docs.langflow.org/url2026-01-15T17:53:41.000Zhttps://docs.langflow.org/web-search2026-01-15T17:53:41.000Zhttps://docs.langflow.org/webhook2026-01-15T17:53:41.000Zhttps://docs.langflow.org/write-file2026-01-15T17:53:41.000Zhttps://docs.langflow.org/2026-01-15T17:53:41.000Z \ No newline at end of file diff --git a/smart-router.html b/smart-router.html index 06018d0fde..f6aef1588f 100644 --- a/smart-router.html +++ b/smart-router.html @@ -24,7 +24,7 @@ - + diff --git a/smart-transform.html b/smart-transform.html index 5b6ae2cf0a..fe14c79ebe 100644 --- a/smart-transform.html +++ b/smart-transform.html @@ -24,7 +24,7 @@ - + diff --git a/split-text.html b/split-text.html index a29da025a0..1654a97d62 100644 --- a/split-text.html +++ b/split-text.html @@ -24,7 +24,7 @@ - + diff --git a/sql-database.html b/sql-database.html index fb6fa4c0f3..0ce8fcffd0 100644 --- a/sql-database.html +++ b/sql-database.html @@ -24,7 +24,7 @@ - + diff --git a/structured-output.html b/structured-output.html index 28917d4f38..0545072e48 100644 --- a/structured-output.html +++ b/structured-output.html @@ -24,7 +24,7 @@ - + diff --git a/text-input-and-output.html b/text-input-and-output.html index 68c5944097..d6af3142c1 100644 --- a/text-input-and-output.html +++ b/text-input-and-output.html @@ -24,7 +24,7 @@ - + diff --git a/troubleshoot.html b/troubleshoot.html index 7029b17625..e4b4d5e751 100644 --- a/troubleshoot.html +++ b/troubleshoot.html @@ -24,7 +24,7 @@ - + @@ -133,6 +133,11 @@ For example:

      Package is not installed

      In Langflow OSS, you can follow the error message's instructions to install the missing dependency.

      To manage dependencies in Langflow Desktop, see Install custom dependencies in Langflow Desktop.

      +

      PostgreSQL asyncpg driver compatibility issue

      +

      The following error can occur when initializing Langflow with a PostgreSQL database:

      +

      _10
      sqlalchemy.exc.DBAPIError: (sqlalchemy.dialects.postgresql.asyncpg.Error) <class 'asyncpg.exceptions.DataError'>: invalid input for query argument $7: datetime.datetime(2025, 10, 31, 14, 8, 5... (can't subtract offset-naive and offset-aware datetimes)

      +

      This error occurs because asyncpg has stricter timezone handling than psycopg2, and is not fully compatible with Langflow's current database schema.

      +

      To resolve this issue, remove asyncpg from your installation and use psycopg2 instead.

      An API key must be passed as query or header

      The following error can occur when attempting to sign up on the Langflow sign in page: An API key must be passed as query or header.

      This means that LANGFLOW_AUTO_LOGIN is set to false, and only superusers can create and activate non-superuser accounts. @@ -210,7 +215,7 @@ For more information, see Tokenization

      1. Ensure your components follow the required directory structure.

        -

        _10
        /your/custom/components/path/ # Base directory set by LANGFLOW_COMPONENTS_PATH
        _10
        └── category_name/ # Required category subfolder that determines menu name
        _10
        ├── __init__.py # Required
        _10
        └── custom_component.py # Component file

        +

        _10
        /your/custom/components/path/ # Base directory set by LANGFLOW_COMPONENTS_PATH
        _10
        └── category_name/ # Required category subfolder that determines menu name
        _10
        ├── __init__.py # Required
        _10
        └── custom_component.py # Component file

      2. Verify each category directory includes an __init__.py file. @@ -227,7 +232,7 @@ If you're using the LANGFLOW_COMPONENTS_PATH environment varia