Result Summary
{'by_region': {'ca': 1, 'de': 0, 'es': 2, 'fr': 0, 'it': 0, 'jp': 0, 'uk': 0, 'us': 0}, 'total_opportunities': 3}
Log Output
p.primary_image,
p.current_price,
tp.created_at AS tp_created_at
FROM content_topicproduct tp
JOIN content_product p ON p.id = tp.product_id
WHERE tp.topic_id = %(topic_id)s
AND p.is_active = true
AND p.has_detail_fetched = true
ORDER BY tp.display_order, tp.created_at DESC
]
[parameters: {'topic_id': 1}]
(Background on this error at: https://sqlalche.me/e/20/f405)
06:30:03 | INFO | generate_feed: region=it, eligible_only=True, queried=364, generated=364
06:30:03 | INFO | sync_feed: total=364, new=0, updated=0, unchanged=364
06:30:03 | INFO | feed_sync: 364 total, 0 new, 0 updated
06:30:03 | INFO | [Topic Assign] world-cup-2026@us: no matching products
06:30:03 | WARNING | [topic_refresh] us/world-cup-2026 failed: (psycopg2.errors.UndefinedColumn) column p.current_price does not exist
LINE 14: p.current_price,
^
[SQL:
SELECT
tp.id AS tp_id,
tp.product_id,
p.name,
p.ags_score,
p.rating,
p.review_count,
p.discount_rate,
p.is_amazon_choice,
p.is_best_seller,
p.is_prime,
p.primary_image,
p.current_price,
tp.created_at AS tp_created_at
FROM content_topicproduct tp
JOIN content_product p ON p.id = tp.product_id
WHERE tp.topic_id = %(topic_id)s
AND p.is_active = true
AND p.has_detail_fetched = true
ORDER BY tp.display_order, tp.created_at DESC
]
[parameters: {'topic_id': 9}]
(Background on this error at: https://sqlalche.me/e/20/f405)
06:30:04 | WARNING | Frontend revalidation returned 401 (attempt 1/3): {"error":"Unauthorized"}
06:30:04 | WARNING | Frontend revalidation returned 401 (attempt 2/3): {"error":"Unauthorized"}
06:30:04 | WARNING | Frontend revalidation returned 401 (attempt 3/3): {"error":"Unauthorized"}
06:30:04 | WARNING | Frontend revalidation exhausted 3 retries. ISR timers will handle eventual consistency.
06:30:04 | INFO | IndexNow: submitted 2 URLs (status=200)
06:30:04 | INFO | [topic_refresh] IndexNow notified 2 topic URLs for us
06:30:04 | INFO | Link Boost [us]: 0 opportunities from 1 candidates
06:30:05 | INFO | CTR Improver [es]: 1 opportunities from 1 candidates
06:30:05 | INFO | [Topic Tagger] topic_id=2: tagged 1/1 products (source=auto)
06:30:05 | INFO | [Topic Assign] summer-essentials@uk: matched=1, assigned=1
06:30:05 | WARNING | [topic_refresh] uk/summer-essentials failed: (psycopg2.errors.UndefinedColumn) column p.current_price does not exist
LINE 14: p.current_price,
^
[SQL:
SELECT
tp.id AS tp_id,
tp.product_id,
p.name,
p.ags_score,
p.rating,
p.review_count,
p.discount_rate,
p.is_amazon_choice,
p.is_best_seller,
p.is_prime,
p.primary_image,
p.current_price,
tp.created_at AS tp_created_at
FROM content_topicproduct tp
JOIN content_product p ON p.id = tp.product_id
WHERE tp.topic_id = %(topic_id)s
AND p.is_active = true
AND p.has_detail_fetched = true
ORDER BY tp.display_order, tp.created_at DESC
]
[parameters: {'topic_id': 2}]
(Background on this error at: https://sqlalche.me/e/20/f405)
06:30:05 | INFO | Link Boost [es]: 1 opportunities from 1 candidates
06:30:05 | INFO | CTR Improver [ca]: 1 opportunities from 1 candidates
06:30:06 | INFO | [Topic Assign] world-cup-2026@uk: no matching products
06:30:06 | WARNING | [topic_refresh] uk/world-cup-2026 failed: (psycopg2.errors.UndefinedColumn) column p.current_price does not exist
LINE 14: p.current_price,
^
[SQL:
SELECT
tp.id AS tp_id,
tp.product_id,
p.name,
p.ags_score,
p.rating,
p.review_count,
p.discount_rate,
p.is_amazon_choice,
p.is_best_seller,
p.is_prime,
p.primary_image,
p.current_price,
tp.created_at AS tp_created_at
FROM content_topicproduct tp
JOIN content_product p ON p.id = tp.product_id
WHERE tp.topic_id = %(topic_id)s
AND p.is_active = true
AND p.has_detail_fetched = true
ORDER BY tp.display_order, tp.created_at DESC
]
[parameters: {'topic_id': 10}]
(Background on this error at: https://sqlalche.me/e/20/f405)
06:30:06 | INFO | Link Boost [ca]: 0 opportunities from 1 candidates