# Creates contact when Instagram returns `No matching Instagram user`
## Description
The error occurs when Facebook tries to validate the Facebook App
created to authorize Instagram integration.
The Facebook's agent uses a Bot to make tests on the App where is not a
valid user via API, returning `{"error"=>{"message"=>"No matching
Instagram user", "type"=>"IGApiException", "code"=>9010}}`.
Then Facebook rejects the request saying this app is still not ready
once the integration with Instagram didn't work.
We can safely create an unknown contact, making this integration work.
## Type of change
Please delete options that are not relevant.
- [X] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality not to work as expected)
- [ ] This change requires a documentation update
## How Has This Been Tested?
There's automated test to cover.
## Checklist:
- [X] My code follows the style guidelines of this project
- [X] I have performed a self-review of my code
- [X] I have commented on my code, particularly in hard-to-understand
areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [X] I have added tests that prove my fix is effective or that my
feature works
- [X] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream
modules
---------
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
This PR adds support for automatic SSL issuance using Cloudflare when a
custom domain is updated.
- Introduced a cloudflare configuration. If present, the system will
attempt to issue an SSL certificate via Cloudflare whenever a custom
domain is added or changed.
- SSL verification is handled using an HTTP challenge.
- The job will store the HTTP challenge response provided by Cloudflare
and serve it under the /.well-known/cf path automatically.
How to test:
- Create a Cloudflare zone for your domain and copy the Zone ID.
- Generate a Cloudflare API token with the required SSL certificate
permissions.
- Set the Fallback Origin under SSL -> Custom HostName to the Chatwoot
installation.
- Add or update a custom domain and verify that the SSL certificate is
automatically issued.
---------
Co-authored-by: Sojan Jose <sojan@pepalo.com>
## cwctl
- allow setting up only web/worker deployments for linux
- allow upgrades to a custom branch - experimental
```
Usage Examples:
# Convert existing full deployment to web-only (for web ASG)
cwctl --convert web
# Convert existing full deployment to worker-only (for worker ASG)
cwctl --convert worker
# Convert specialized deployment back to full
cwctl --convert full
# Fresh installs still work as before
cwctl -i --web-only # New web-only install
cwctl -i --worker-only # New worker-only instal
```
- Upgrading to custom branches is risky, as other dependencies like node
or db might have changed
```
cwctl --upgrade # Upgrade to master branch - default
cwctl -U v4.3.0 # Upgrade to specific release branch
cwctl --upgrade feat/new-feature # Upgrade to feature branch
```
This pull request includes a small change to the `Dashboard.vue` file.
The change adds `'general_settings_index'` to the list of route names
checked for inclusion.
Add support for media URL input fields in WhatsApp templates with IMAGE, VIDEO,
or DOCUMENT headers, enabling users to provide media links for template messages.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
The root cause of media header templates not appearing was in the Vuex store
getter `getWhatsAppTemplates` which was explicitly filtering out templates
with IMAGE and VIDEO components.
This fix removes the media filtering logic to allow all approved WhatsApp
templates to be available in the template selector, including those with:
- IMAGE headers
- VIDEO headers
- DOCUMENT headers
Now the `order_confirmation` template and other media templates will appear
in the template picker as expected.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove format-based filtering that was preventing media templates from showing
- Add robust error handling for template loading without console statements
- Include comprehensive validation for template properties
- Add debug helper method to troubleshoot template visibility issues
Previously, templates with media headers (IMAGE, VIDEO, DOCUMENT) were being
filtered out even though we removed format restrictions. This fix ensures
all approved templates are visible in the template selector regardless of
their media format.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>