Xử lý sự cố
Vấn đề thường gặp khi vận hành landing_page_backend. Bổ sung khi gặp lỗi mới.
1. Container landing-page không khởi động
- Đọc log:
docker compose logs landing-page --tail=200. key :xxx not found→ thiếu env. Đối chiếu Biến môi trường, bổ sung.env, restart.
2. Queue Oban bị kẹt
Triệu chứng: số job pending tăng dần, không drain.
- Kiểm tra concurrency của queue > 0 trong config.
- Trong IEx:
Oban.check_queue(:default); nếupaused: truethìOban.resume_queue(queue: :default). - Job fail liên tục: xem trường
errorstrong bảngoban_jobs, sửa nguyên nhân gốc hoặc tăngmax_attempts.
3. Logical replication bị lag
- Kiểm tra
select * from pg_stat_replication;trên primary. - Lag tăng khi bulk insert: chia batch nhỏ hơn, throttle worker.
- Publication hỏng sau migration: chạy lại
make init-primary+make init-replica.
4. Rabbit consumer không nhận message
- Mở Rabbit UI (
http://localhost:15672) — kiểm tra queue có message vàconsumers ≥ 1. - Restart supervisor:
LandingPage.Rabbit.Supervisor.restart_consumers(). - Lỗi kết nối: kiểm tra lại
R_HOST,R_USERNAME, password.
5. Producer Kafka timeout
KAFKA1_HOST/KAFKA2_HOSTđúng (network Docker?).- Producer cần topic
metadata— đảm bảo topic đã được tạo. - Tăng
request_timeouttrong config nếu cluster chậm.
6. Webhook Stripe / Paypal sai chữ ký
STRIPE_WEBHOOK_SECRET_KEYkhớp môi trường (test so với live).- Paypal: kiểm tra
PAYPAL_HOST(sandbox.paypal.comso vớipaypal.com). - Đồng hồ server lệch — đồng bộ NTP.
7. Verify domain mãi không pass
- TXT đã propagate?
dig TXT yourdomain.com. - Domain worker (
domain_worker.ex) có thể đang backoff —Oban.retry_job/1.
8. SSL Let's Encrypt fail
- Mở port 80 và Nginx forward đúng
/.well-known/acme-challenge/. - Giới hạn LE: 5 lần issue mỗi domain mỗi tuần.
9. Lead không đến được CRM
form_data_workerlỗi — xem Sentry.- Endpoint CRM đổi → cập nhật module tích hợp.
- Backoff exponential khiến retry có thể cách nhau hàng giờ.
10. Mongo connection refused
- Mongo không bắt buộc cho luồng mặc định, nhưng nếu plugin / job dùng Mongo, đảm bảo container trong
docker-compose-services.ymlđã chạy.
11. Migration treo
- Thường do lock bảng lớn. Tách thành: thêm cột nullable, backfill bằng worker, sau đó add constraint.
- Theo dõi
pg_stat_activityđể biết transaction nào đang block.
12. Đổi env không có hiệu lực
- Phoenix đọc config khi boot. Sửa
.envxong cần restart container.
13. Cảnh báo Telegram không bắn
TELEBOT_ALERT_TOKENkhông hợp lệ hoặc bot đã bị block.TELEGROUP_ALERTphải là số âm (group / supergroup).
14. AI provider 429
DEEPINFRA_API_KEY/GEMINI_API_KEYđã hết quota.- Worker AI nên dùng retry tăng dần + circuit breaker.
15. Public API trả 401 ở luồng publish landing
public_api_router.exkhông cần JWT user nhưng yêu cầu chữ ký — kiểm tra header (ví dụX-Storecake-Signature).STORECAKE_SECRET_KEYphải khớp với khoá đang ký bênbuilderx_api.
16. File CMS 404 trên storefront
- Asset chưa upload lên bucket public. Kiểm tra
S3_BUCKET_PUBLICvà CORS bucket cho phép domain storefront.
17. iex --remsh không kết nối
- Sai cookie Erlang. Dùng cookie của release (
bin/landing_page rpc). - EPMD (port 4369) phải reachable giữa host và node.
18. Khi nào escalate
- Sự cố prod kéo dài > 5 phút (publish hỏng, mất lead) → mở incident channel, gọi ops.
- Replica drop > 1 phút → ping DBA ngay (mất dữ liệu analytics nhanh).
Mỗi khi xử lý xong một vấn đề mới, thêm vào đây để người sau tra cứu được.