René's URL Explorer Experiment


Title: Fix Chatwoot DB Connection Instability and Implement Stale Conversation Cache Handling by Vitordotpy · Pull Request #2017 · EvolutionAPI/evolution-api · GitHub

Open Graph Title: Fix Chatwoot DB Connection Instability and Implement Stale Conversation Cache Handling by Vitordotpy · Pull Request #2017 · EvolutionAPI/evolution-api

X Title: Fix Chatwoot DB Connection Instability and Implement Stale Conversation Cache Handling by Vitordotpy · Pull Request #2017 · EvolutionAPI/evolution-api

Description: This pull request addresses two critical issues in the Chatwoot integration to improve its reliability and resilience. It introduces on-demand database connections to prevent intermittent connection failures and implements a retry mechanism to handle stale conversation data cached in Redis. Fixes: Prevent Intermittent DB Connection Errors: Refactored the ChatwootService to initialize the PostgreSQL client on-demand (getPgClient) rather than at service instantiation. This resolves a race condition where the client could be created with an incorrect or default database connection string, causing sporadic database does not exist errors. Handle Stale Conversation Cache: Implemented a try-catch mechanism within the createMessage and sendData methods. When a 404 Not Found error is received from the Chatwoot API (indicating a stale conversation ID in the Redis cache), the system now automatically: Deletes the invalid conversation entry from Redis. Creates a new conversation in Chatwoot. Retries the original message-sending operation with the new, valid conversation ID. Enhancements: Increased Resilience: The integration is now more robust against temporary inconsistencies between the Redis cache and the Chatwoot database state, preventing message delivery failures. Improved Stability: Lazily initializing the database connection ensures that the correct, instance-specific credentials are used for every operation, eliminating a significant source of production errors. Summary This PR resolves critical stability issues in the Chatwoot integration by implementing on-demand database connections to fix intermittent connection errors and adding a retry mechanism that automatically handles stale conversation IDs from the Redis cache, ensuring more reliable message delivery. Summary by Sourcery Fix intermittent database connection errors and add automatic retry handling for stale Chatwoot conversation IDs by lazily initializing the Postgres client and evicting and recreating conversations on 404 errors. Bug Fixes: Prevent intermittent 'database does not exist' errors by initializing the PostgreSQL client on-demand. Enhancements: Automatically detect and recover from stale Chatwoot conversation IDs by evicting the Redis cache entry, creating a new conversation, and retrying message operations.

Open Graph Description: This pull request addresses two critical issues in the Chatwoot integration to improve its reliability and resilience. It introduces on-demand database connections to prevent intermittent connectio...

X Description: This pull request addresses two critical issues in the Chatwoot integration to improve its reliability and resilience. It introduces on-demand database connections to prevent intermittent connectio...

Opengraph URL: https://github.com/EvolutionAPI/evolution-api/pull/2017

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/checks(.:format)
route-controllerpull_requests
route-actionchecks
fetch-noncev2:41c52151-c64f-4d54-2911-8275b69247b3
current-catalog-service-hash87dc3bc62d9b466312751bfd5f889726f4f1337bdff4e8be7da7c93d6c00a25a
request-id9166:1B51C4:2835489:35C0B03:6992F050
html-safe-noncedb4dbe9378a859331fc1786fbe2e12dd104db00f33fce53897f302195c2811d7
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5MTY2OjFCNTFDNDoyODM1NDg5OjM1QzBCMDM6Njk5MkYwNTAiLCJ2aXNpdG9yX2lkIjoiNjk1Mzg5NzM2OTM2NTgzNTg1NiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmacb2f6c98d2ba92c458bd9bc8c23d88cb259e37c777da49d0820cbbd0a6c6a395b
hovercard-subject-tagpull_request:2861870529
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,checks,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/checks
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/EvolutionAPI/evolution-api/pull/2017/checks
twitter:imagehttps://avatars.githubusercontent.com/u/72520858?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/72520858?s=400&v=4
og:image:altThis pull request addresses two critical issues in the Chatwoot integration to improve its reliability and resilience. It introduces on-demand database connections to prevent intermittent connectio...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None01ab16879a3159e6f0717ab948b9b562e162a6aafd1f4393b786b07b747df244
turbo-cache-controlno-preview
go-importgithub.com/EvolutionAPI/evolution-api git https://github.com/EvolutionAPI/evolution-api.git
octolytics-dimension-user_id136080052
octolytics-dimension-user_loginEvolutionAPI
octolytics-dimension-repository_id651487266
octolytics-dimension-repository_nwoEvolutionAPI/evolution-api
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id651487266
octolytics-dimension-repository_network_root_nwoEvolutionAPI/evolution-api
turbo-body-classeslogged-out env-production page-responsive full-width full-width-p-0
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
releaseb1570f3928bef80fa5fc7890ce0942e9b696ad9d
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/EvolutionAPI/evolution-api/pull/2017/checks#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2FEvolutionAPI%2Fevolution-api%2Fpull%2F2017%2Fchecks
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2FEvolutionAPI%2Fevolution-api%2Fpull%2F2017%2Fchecks
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Fchecks&source=header-repo&source_repo=EvolutionAPI%2Fevolution-api
Reloadhttps://github.com/EvolutionAPI/evolution-api/pull/2017/checks
Reloadhttps://github.com/EvolutionAPI/evolution-api/pull/2017/checks
Reloadhttps://github.com/EvolutionAPI/evolution-api/pull/2017/checks
EvolutionAPI https://github.com/EvolutionAPI
evolution-apihttps://github.com/EvolutionAPI/evolution-api
Notifications https://github.com/login?return_to=%2FEvolutionAPI%2Fevolution-api
Fork 5.5k https://github.com/login?return_to=%2FEvolutionAPI%2Fevolution-api
Star 7.1k https://github.com/login?return_to=%2FEvolutionAPI%2Fevolution-api
Code https://github.com/EvolutionAPI/evolution-api
Issues 368 https://github.com/EvolutionAPI/evolution-api/issues
Pull requests 22 https://github.com/EvolutionAPI/evolution-api/pulls
Actions https://github.com/EvolutionAPI/evolution-api/actions
Projects 0 https://github.com/EvolutionAPI/evolution-api/projects
Security 0 https://github.com/EvolutionAPI/evolution-api/security
Insights https://github.com/EvolutionAPI/evolution-api/pulse
Code https://github.com/EvolutionAPI/evolution-api
Issues https://github.com/EvolutionAPI/evolution-api/issues
Pull requests https://github.com/EvolutionAPI/evolution-api/pulls
Actions https://github.com/EvolutionAPI/evolution-api/actions
Projects https://github.com/EvolutionAPI/evolution-api/projects
Security https://github.com/EvolutionAPI/evolution-api/security
Insights https://github.com/EvolutionAPI/evolution-api/pulse
Sign up for GitHub https://github.com/signup?return_to=%2FEvolutionAPI%2Fevolution-api%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2FEvolutionAPI%2Fevolution-api%2Fissues%2Fnew%2Fchoose
DavidsonGomeshttps://github.com/DavidsonGomes
EvolutionAPI:develophttps://github.com/EvolutionAPI/evolution-api/tree/develop
Vitordotpy:fix/enhanced-chatwoot-database-connectionhttps://github.com/Vitordotpy/evolution-api/tree/fix/enhanced-chatwoot-database-connection
Conversation 6 https://github.com/EvolutionAPI/evolution-api/pull/2017
Commits 4 https://github.com/EvolutionAPI/evolution-api/pull/2017/commits
Checks 5 https://github.com/EvolutionAPI/evolution-api/pull/2017/checks
Files changed https://github.com/EvolutionAPI/evolution-api/pull/2017/files
Please reload this pagehttps://github.com/EvolutionAPI/evolution-api/pull/2017/checks
Please reload this pagehttps://github.com/EvolutionAPI/evolution-api/pull/2017/checks
Fix Chatwoot DB Connection Instability and Implement Stale Conversation Cache Handling https://github.com/EvolutionAPI/evolution-api/pull/2017/checks#top
Please reload this pagehttps://github.com/EvolutionAPI/evolution-api/pull/2017/checks
Sourcery review https://github.com/EvolutionAPI/evolution-api/pull/2017/checks?check_run_id=51275058924
Check Code Quality on: pull_request https://github.com/EvolutionAPI/evolution-api/actions/runs/18020101687
check-lint-and-build https://github.com/EvolutionAPI/evolution-api/actions/runs/18020101687/job/51320646026?pr=2017
Security Scan on: pull_request https://github.com/EvolutionAPI/evolution-api/actions/runs/18020101702
CodeQL Analysis (javascript) https://github.com/EvolutionAPI/evolution-api/actions/runs/18020101702/job/51320646029?pr=2017
Dependency Review https://github.com/EvolutionAPI/evolution-api/actions/runs/18020101702/job/51320646031?pr=2017
CodeQL https://github.com/EvolutionAPI/evolution-api/pull/2017/checks?check_run_id=51320756348
View more details on Sourcery AI https://sourcery.ai
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.