2026-06-24 17:15:09 [scrapy.utils.log] INFO: Scrapy 2.12.0 started (bot: ZomatoComplaintData) 2026-06-24 17:15:09 [scrapy.utils.log] INFO: Versions: lxml 6.0.2.0, libxml2 2.14.6, cssselect 1.3.0, parsel 1.10.0, w3lib 2.3.1, Twisted 25.5.0, Python 3.12.3 (main, Mar 23 2026, 19:04:32) [GCC 13.3.0], pyOpenSSL 25.1.0 (OpenSSL 3.5.2 5 Aug 2025), cryptography 45.0.6, Platform Linux-6.17.0-1013-aws-x86_64-with-glibc2.39 2026-06-24 17:15:09 [scrapy.addons] INFO: Enabled addons: [] 2026-06-24 17:15:09 [asyncio] DEBUG: Using selector: EpollSelector 2026-06-24 17:15:09 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor 2026-06-24 17:15:09 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop 2026-06-24 17:15:09 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor 2026-06-24 17:15:09 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop 2026-06-24 17:15:09 [scrapy.extensions.telnet] INFO: Telnet Password: 0b60a9d90887f300 2026-06-24 17:15:09 [scrapy.middleware] INFO: Enabled extensions: ['scrapy.extensions.corestats.CoreStats', 'scrapy.extensions.telnet.TelnetConsole', 'scrapy.extensions.memusage.MemoryUsage', 'scrapy.extensions.logstats.LogStats'] 2026-06-24 17:15:09 [scrapy.crawler] INFO: Overridden settings: {'BOT_NAME': 'ZomatoComplaintData', 'DOWNLOAD_DELAY': 0.5, 'FEED_EXPORT_ENCODING': 'utf-8', 'LOG_FILE': '/home/ubuntu/logs/ZomatoComplaintData/zomato_mealtime_complaints_data/3d7e0aff6ff011f18dbd0aab37b1cebd.log', 'NEWSPIDER_MODULE': 'ZomatoComplaintData.spiders', 'SPIDER_MODULES': ['ZomatoComplaintData.spiders'], 'TWISTED_REACTOR': 'twisted.internet.asyncioreactor.AsyncioSelectorReactor'} 2026-06-24 17:15:09 [scrapy.middleware] INFO: Enabled downloader middlewares: ['scrapy.downloadermiddlewares.offsite.OffsiteMiddleware', 'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware', 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware', 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware', 'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware', 'scrapy.downloadermiddlewares.retry.RetryMiddleware', 'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware', 'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware', 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware', 'scrapy.downloadermiddlewares.cookies.CookiesMiddleware', 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware', 'scrapy.downloadermiddlewares.stats.DownloaderStats'] 2026-06-24 17:15:09 [scrapy.middleware] INFO: Enabled spider middlewares: ['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware', 'scrapy.spidermiddlewares.referer.RefererMiddleware', 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware', 'scrapy.spidermiddlewares.depth.DepthMiddleware'] 2026-06-24 17:15:09 [scrapy.middleware] INFO: Enabled item pipelines: ['ZomatoComplaintData.pipelines.ZomatocomplaintdataPipeline'] 2026-06-24 17:15:09 [scrapy.core.engine] INFO: Spider opened 2026-06-24 17:15:09 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) 2026-06-24 17:15:09 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023 2026-06-24 17:15:09 [py.warnings] WARNING: /home/ubuntu/eggs/ZomatoComplaintData/1782130803.egg/ZomatoComplaintData/spiders/MealtimeZomatoComplaintData.py:53: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. 2026-06-24 17:15:10 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.zomato.com/partners/onlineordering/customerIssues/) 2026-06-24 17:15:13 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.zomato.com/partners/onlineordering/customerIssues/) 2026-06-24 17:15:13 [py.warnings] WARNING: /home/ubuntu/eggs/ZomatoComplaintData/1782130803.egg/ZomatoComplaintData/spiders/MealtimeZomatoComplaintData.py:137: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. comp_response = pd.read_sql_query(comp_query, self.conn) 2026-06-24 17:15:14 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.zomato.com/partners/onlineordering/customerIssues/) 2026-06-24 17:15:15 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.zomato.com/partners/onlineordering/customerIssues/) 2026-06-24 17:15:15 [botocore.hooks] DEBUG: Changing event name from creating-client-class.iot-data to creating-client-class.iot-data-plane 2026-06-24 17:15:15 [botocore.hooks] DEBUG: Changing event name from before-call.apigateway to before-call.api-gateway 2026-06-24 17:15:15 [botocore.hooks] DEBUG: Changing event name from request-created.machinelearning.Predict to request-created.machine-learning.Predict 2026-06-24 17:15:15 [botocore.hooks] DEBUG: Changing event name from before-parameter-build.autoscaling.CreateLaunchConfiguration to before-parameter-build.auto-scaling.CreateLaunchConfiguration 2026-06-24 17:15:15 [botocore.hooks] DEBUG: Changing event name from before-parameter-build.route53 to before-parameter-build.route-53 2026-06-24 17:15:15 [botocore.hooks] DEBUG: Changing event name from request-created.cloudsearchdomain.Search to request-created.cloudsearch-domain.Search 2026-06-24 17:15:15 [botocore.hooks] DEBUG: Changing event name from docs.*.autoscaling.CreateLaunchConfiguration.complete-section to docs.*.auto-scaling.CreateLaunchConfiguration.complete-section 2026-06-24 17:15:15 [botocore.hooks] DEBUG: Changing event name from before-parameter-build.logs.CreateExportTask to before-parameter-build.cloudwatch-logs.CreateExportTask 2026-06-24 17:15:15 [botocore.hooks] DEBUG: Changing event name from docs.*.logs.CreateExportTask.complete-section to docs.*.cloudwatch-logs.CreateExportTask.complete-section 2026-06-24 17:15:15 [botocore.hooks] DEBUG: Changing event name from before-parameter-build.cloudsearchdomain.Search to before-parameter-build.cloudsearch-domain.Search 2026-06-24 17:15:15 [botocore.hooks] DEBUG: Changing event name from docs.*.cloudsearchdomain.Search.complete-section to docs.*.cloudsearch-domain.Search.complete-section 2026-06-24 17:15:15 [botocore.utils] DEBUG: IMDS ENDPOINT: http://169.254.169.254/ 2026-06-24 17:15:15 [botocore.credentials] DEBUG: Looking for credentials via: env 2026-06-24 17:15:15 [botocore.credentials] DEBUG: Looking for credentials via: assume-role 2026-06-24 17:15:15 [botocore.credentials] DEBUG: Looking for credentials via: assume-role-with-web-identity 2026-06-24 17:15:15 [botocore.credentials] DEBUG: Looking for credentials via: sso 2026-06-24 17:15:15 [botocore.credentials] DEBUG: Looking for credentials via: shared-credentials-file 2026-06-24 17:15:15 [botocore.credentials] DEBUG: Looking for credentials via: login 2026-06-24 17:15:15 [botocore.credentials] DEBUG: Looking for credentials via: custom-process 2026-06-24 17:15:15 [botocore.credentials] DEBUG: Looking for credentials via: config-file 2026-06-24 17:15:15 [botocore.credentials] DEBUG: Looking for credentials via: ec2-credentials-file 2026-06-24 17:15:15 [botocore.credentials] DEBUG: Looking for credentials via: boto-config 2026-06-24 17:15:15 [botocore.credentials] DEBUG: Looking for credentials via: container-role 2026-06-24 17:15:15 [botocore.credentials] DEBUG: Looking for credentials via: iam-role 2026-06-24 17:15:15 [urllib3.connectionpool] DEBUG: Starting new HTTP connection (1): 169.254.169.254:80 2026-06-24 17:15:15 [urllib3.connectionpool] DEBUG: http://169.254.169.254:80 "PUT /latest/api/token HTTP/1.1" 200 56 2026-06-24 17:15:15 [urllib3.connectionpool] DEBUG: Resetting dropped connection: 169.254.169.254 2026-06-24 17:15:15 [urllib3.connectionpool] DEBUG: http://169.254.169.254:80 "GET /latest/meta-data/iam/security-credentials/ HTTP/1.1" 200 16 2026-06-24 17:15:15 [urllib3.connectionpool] DEBUG: Resetting dropped connection: 169.254.169.254 2026-06-24 17:15:15 [urllib3.connectionpool] DEBUG: http://169.254.169.254:80 "GET /latest/meta-data/iam/security-credentials/s3OnBoardingForm HTTP/1.1" 200 1574 2026-06-24 17:15:15 [botocore.credentials] INFO: Found credentials from IAM Role: s3OnBoardingForm 2026-06-24 17:15:15 [botocore.loaders] DEBUG: Loading JSON file: /home/ubuntu/culinary-compass-spiders/venv/lib/python3.12/site-packages/botocore/data/endpoints.json 2026-06-24 17:15:15 [botocore.loaders] DEBUG: Loading JSON file: /home/ubuntu/culinary-compass-spiders/venv/lib/python3.12/site-packages/botocore/data/sdk-default-configuration.json 2026-06-24 17:15:15 [botocore.hooks] DEBUG: Event choose-service-name: calling handler 2026-06-24 17:15:15 [botocore.loaders] DEBUG: Loading JSON file: /home/ubuntu/culinary-compass-spiders/venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/service-2.json.gz 2026-06-24 17:15:15 [botocore.loaders] DEBUG: Loading JSON file: /home/ubuntu/culinary-compass-spiders/venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/service-2.sdk-extras.json 2026-06-24 17:15:15 [botocore.loaders] DEBUG: Loading JSON file: /home/ubuntu/culinary-compass-spiders/venv/lib/python3.12/site-packages/botocore/data/s3/2006-03-01/endpoint-rule-set-1.json.gz 2026-06-24 17:15:15 [botocore.loaders] DEBUG: Loading JSON file: /home/ubuntu/culinary-compass-spiders/venv/lib/python3.12/site-packages/botocore/data/partitions.json 2026-06-24 17:15:15 [botocore.hooks] DEBUG: Event creating-client-class.s3: calling handler 2026-06-24 17:15:15 [botocore.hooks] DEBUG: Event creating-client-class.s3: calling handler ._handler at 0x709c3b7b8360> 2026-06-24 17:15:15 [botocore.hooks] DEBUG: Event creating-client-class.s3: calling handler 2026-06-24 17:15:15 [botocore.configprovider] DEBUG: Looking for endpoint for s3 via: environment_service 2026-06-24 17:15:15 [botocore.configprovider] DEBUG: Looking for endpoint for s3 via: environment_global 2026-06-24 17:15:15 [botocore.configprovider] DEBUG: Looking for endpoint for s3 via: config_service 2026-06-24 17:15:15 [botocore.configprovider] DEBUG: Looking for endpoint for s3 via: config_global 2026-06-24 17:15:15 [botocore.configprovider] DEBUG: No configured endpoint found. 2026-06-24 17:15:15 [botocore.endpoint] DEBUG: Setting s3 timeout as (60, 60) 2026-06-24 17:15:15 [botocore.loaders] DEBUG: Loading JSON file: /home/ubuntu/culinary-compass-spiders/venv/lib/python3.12/site-packages/botocore/data/_retry.json 2026-06-24 17:15:15 [botocore.client] DEBUG: Registering retry handlers for service: s3 2026-06-24 17:15:15 [botocore.utils] DEBUG: Registering S3 region redirector handler 2026-06-24 17:15:15 [botocore.utils] DEBUG: Registering S3Express Identity Resolver 2026-06-24 17:15:15 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.zomato.com/merchant-api/orders/order-details?tab_id=8273021948&view=customer_complaints_v2> None 2026-06-24 17:15:16 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://www.zomato.com/partners/onlineordering/customerIssues/) 2026-06-24 17:15:16 [botocore.hooks] DEBUG: Event choose-service-name: calling handler 2026-06-24 17:15:16 [botocore.hooks] DEBUG: Event creating-client-class.s3: calling handler 2026-06-24 17:15:16 [botocore.hooks] DEBUG: Event creating-client-class.s3: calling handler ._handler at 0x709c3b7b8360> 2026-06-24 17:15:16 [botocore.hooks] DEBUG: Event creating-client-class.s3: calling handler 2026-06-24 17:15:16 [botocore.configprovider] DEBUG: Looking for endpoint for s3 via: environment_service 2026-06-24 17:15:16 [botocore.configprovider] DEBUG: Looking for endpoint for s3 via: environment_global 2026-06-24 17:15:16 [botocore.configprovider] DEBUG: Looking for endpoint for s3 via: config_service 2026-06-24 17:15:16 [botocore.configprovider] DEBUG: Looking for endpoint for s3 via: config_global 2026-06-24 17:15:16 [botocore.configprovider] DEBUG: No configured endpoint found. 2026-06-24 17:15:16 [botocore.endpoint] DEBUG: Setting s3 timeout as (60, 60) 2026-06-24 17:15:16 [botocore.client] DEBUG: Registering retry handlers for service: s3 2026-06-24 17:15:16 [botocore.utils] DEBUG: Registering S3 region redirector handler 2026-06-24 17:15:16 [botocore.utils] DEBUG: Registering S3Express Identity Resolver 2026-06-24 17:15:16 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): prod-chat-v2-assets.s3-accelerate.amazonaws.com:443 2026-06-24 17:15:17 [urllib3.connectionpool] DEBUG: https://prod-chat-v2-assets.s3-accelerate.amazonaws.com:443 "GET /260255-1-49111930/A0146DE2-2BFC-41BD-A0BA-8D9156BE3FB4.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA5RVPIJ4EQQJSQHM4%2F20260624%2Fap-southeast-1%2Fs3%2Faws4_request&X-Amz-Date=20260624T171516Z&X-Amz-Expires=604800&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEG4aDmFwLXNvdXRoZWFzdC0xIkcwRQIhAKN1J%2Flo8JVv3kIJHsSZ2%2BwylpNchA3hwoEY6AcJdSMPAiAdkYXrhFQYp3VAYUDOSY1EQyOJ953rxmoZqdPsbLH79yr%2BAwg3EAAaDDkzMTMwMTcwNzUyOSIMeDTkRsaC2wMxuQEAKtsDm4pF0hfxPulxjKksVTRMS%2BDWoz2aRllpVSCJWkmv7h6JUKHeMWcSaaswC9q4Rq%2FKXQRMUpxKIHDjglD2ogbv6YtZx6e3zRQPx%2FwXQwt4Z7b%2BdgHOPLRMd8ro1FYPqzn9k1sadMV%2FEhD6OTSOaImox%2F0XoQk%2FkcNc1fp7oYbkdgAOfN8JqOM6Gtup7ux6tI%2F1j9NULxOj%2BjWNVhhR%2BTGmhAH4AD3Z5nXabexsEchGLY4m6w1XCOSyBWCZ0m0zmF3CymPIln9a3bzbSs8CHygIjSWKQkkFPsCOd1y0%2BES4WSHhNONwNPBOojamHqUXl0xSCqrmkC89cIdJkPTSgVAw7OvIgGCrfGOla8vW3ZbN1xDPTHm25um0qbv72mQV7gWa9JFG3zbrPW984Yx3IiStNObKehLgy8zr7tmFLOf8or2knvDx72qSKHGmJL4VNNqbJR9SLQZ6p5LI3oTinK9qjbG1nzBIS1wTllhXl1AuhnhKAEkJUyHEB4ReaDyBcwxHABHpVDSNPzOSeK4qF10rUFsWjZL8bxaPDj3g21dnH7gU0egWmm4ppweKuNveM%2B21xzNS5wstyLJGVW7YndPm2tgz%2F%2BFXXOBO1jbXSoQw03GsNF87zQEqo2fa7zCmvO%2FRBjqlAWBd1rcC%2BXsjRteUADqqTyvCqvKNFJl84LSv2jsQxqZWm%2BnXqIw1FOA%2BZIt6R4%2BU%2Fnzvxcf2e9gcH2L916hVmphKhxcyQ36WsCBcK1q0QDvI34Zf%2Fl38lREHOlMP7B678pSRJ2XZY4ca7%2BL5DF5adLk6CeG%2FrICf%2FhfnwI6OKZYkBvQ66qvfJvo49ZSHzptoUEbTc7f1FLmNublUvTiDmdUov4An1g%3D%3D&X-Amz-SignedHeaders=host&X-Amz-Signature=afcd5396e5971c16d7c73d660fe7a8e1392a6e67f086eefe65c9d097d2770507 HTTP/1.1" 200 2319018 2026-06-24 17:15:17 [boto3.s3.transfer] DEBUG: Opting out of CRT Transfer Manager. Preferred client: auto, CRT available: False, Instance Optimized: False 2026-06-24 17:15:17 [boto3.s3.transfer] DEBUG: Using default client. pid: 247397, thread: 123816394403968 2026-06-24 17:15:17 [s3transfer.utils] DEBUG: Acquiring 0 2026-06-24 17:15:17 [s3transfer.tasks] DEBUG: UploadSubmissionTask(transfer_id=0, {'transfer_future': }) about to wait for the following futures [] 2026-06-24 17:15:17 [s3transfer.tasks] DEBUG: UploadSubmissionTask(transfer_id=0, {'transfer_future': }) done waiting for dependent futures 2026-06-24 17:15:17 [s3transfer.tasks] DEBUG: Executing task UploadSubmissionTask(transfer_id=0, {'transfer_future': }) with kwargs {'client': , 'config': , 'osutil': , 'request_executor': , 'transfer_future': } 2026-06-24 17:15:17 [s3transfer.futures] DEBUG: Submitting task PutObjectTask(transfer_id=0, {'bucket': 'culinary-compass-img-bucket', 'key': 'zomato/8277346156/image-0.jpg', 'extra_args': {'ContentType': 'image/jpeg', 'ChecksumAlgorithm': 'CRC32'}}) to executor for transfer request: 0. 2026-06-24 17:15:17 [s3transfer.utils] DEBUG: Acquiring 0 2026-06-24 17:15:17 [s3transfer.tasks] DEBUG: PutObjectTask(transfer_id=0, {'bucket': 'culinary-compass-img-bucket', 'key': 'zomato/8277346156/image-0.jpg', 'extra_args': {'ContentType': 'image/jpeg', 'ChecksumAlgorithm': 'CRC32'}}) about to wait for the following futures [] 2026-06-24 17:15:17 [s3transfer.tasks] DEBUG: PutObjectTask(transfer_id=0, {'bucket': 'culinary-compass-img-bucket', 'key': 'zomato/8277346156/image-0.jpg', 'extra_args': {'ContentType': 'image/jpeg', 'ChecksumAlgorithm': 'CRC32'}}) done waiting for dependent futures 2026-06-24 17:15:17 [s3transfer.tasks] DEBUG: Executing task PutObjectTask(transfer_id=0, {'bucket': 'culinary-compass-img-bucket', 'key': 'zomato/8277346156/image-0.jpg', 'extra_args': {'ContentType': 'image/jpeg', 'ChecksumAlgorithm': 'CRC32'}}) with kwargs {'client': , 'fileobj': , 'bucket': 'culinary-compass-img-bucket', 'key': 'zomato/8277346156/image-0.jpg', 'extra_args': {'ContentType': 'image/jpeg', 'ChecksumAlgorithm': 'CRC32'}} 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler > 2026-06-24 17:15:17 [s3transfer.utils] DEBUG: Releasing acquire 0/None 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler > 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event before-endpoint-resolution.s3: calling handler 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event before-endpoint-resolution.s3: calling handler > 2026-06-24 17:15:17 [botocore.regions] DEBUG: Calling endpoint provider with parameters: {'Bucket': 'culinary-compass-img-bucket', 'Region': 'ap-south-1', 'UseFIPS': False, 'UseDualStack': False, 'ForcePathStyle': False, 'Accelerate': False, 'UseGlobalEndpoint': False, 'Key': 'zomato/8277346156/image-0.jpg', 'DisableMultiRegionAccessPoints': False, 'UseArnRegion': True} 2026-06-24 17:15:17 [botocore.regions] DEBUG: Endpoint provider result: https://culinary-compass-img-bucket.s3.ap-south-1.amazonaws.com 2026-06-24 17:15:17 [botocore.regions] DEBUG: Selecting from endpoint provider's list of auth schemes: "sigv4". User selected auth scheme is: "None" 2026-06-24 17:15:17 [botocore.regions] DEBUG: Selected auth type "v4" as "v4" with signing context params: {'region': 'ap-south-1', 'signing_name': 's3', 'disableDoubleEncoding': True} 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event before-call.s3.PutObject: calling handler 2026-06-24 17:15:17 [botocore.handlers] DEBUG: Adding expect 100 continue header to request. 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event before-call.s3.PutObject: calling handler > 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event before-call.s3.PutObject: calling handler 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event before-call.s3.PutObject: calling handler 2026-06-24 17:15:17 [botocore.endpoint] DEBUG: Making request for OperationModel(name=PutObject) with params: {'url_path': '/zomato/8277346156/image-0.jpg', 'query_string': {}, 'method': 'PUT', 'headers': {'Content-Type': 'image/jpeg', 'x-amz-sdk-checksum-algorithm': 'CRC32', 'User-Agent': 'Boto3/1.42.12 md/Botocore#1.42.12 ua/2.1 os/linux#6.17.0-1013-aws md/arch#x86_64 lang/python#3.12.3 md/pyimpl#CPython m/b,D,G,Z cfg/retry-mode#legacy Botocore/1.42.12', 'Expect': '100-continue', 'Transfer-Encoding': 'chunked', 'Content-Encoding': 'aws-chunked', 'X-Amz-Trailer': 'x-amz-checksum-crc32', 'X-Amz-Decoded-Content-Length': '2319018'}, 'body': , 'auth_path': '/culinary-compass-img-bucket/zomato/8277346156/image-0.jpg', 'url': 'https://culinary-compass-img-bucket.s3.ap-south-1.amazonaws.com/zomato/8277346156/image-0.jpg', 'context': {'client_region': 'ap-south-1', 'client_config': , 'has_streaming_input': True, 'auth_type': 'v4', 'unsigned_payload': None, 'auth_options': ['aws.auth#sigv4'], 's3_redirect': {'redirected': False, 'bucket': 'culinary-compass-img-bucket', 'params': {'Bucket': 'culinary-compass-img-bucket', 'Key': 'zomato/8277346156/image-0.jpg', 'Body': , 'ContentType': 'image/jpeg', 'ChecksumAlgorithm': 'CRC32'}}, 'input_params': {'Bucket': 'culinary-compass-img-bucket', 'Key': 'zomato/8277346156/image-0.jpg'}, 'signing': {'region': 'ap-south-1', 'signing_name': 's3', 'disableDoubleEncoding': True}, 'endpoint_properties': {'authSchemes': [{'disableDoubleEncoding': True, 'name': 'sigv4', 'signingName': 's3', 'signingRegion': 'ap-south-1'}]}, 'checksum': {'request_algorithm': {'algorithm': 'crc32', 'in': 'trailer', 'name': 'x-amz-checksum-crc32'}}}} 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event request-created.s3.PutObject: calling handler 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event request-created.s3.PutObject: calling handler > 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event choose-signer.s3.PutObject: calling handler 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event before-sign.s3.PutObject: calling handler 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event before-sign.s3.PutObject: calling handler 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event before-sign.s3.PutObject: calling handler > 2026-06-24 17:15:17 [botocore.auth] DEBUG: Calculating signature using v4 auth. 2026-06-24 17:15:17 [botocore.auth] DEBUG: CanonicalRequest: PUT /zomato/8277346156/image-0.jpg content-encoding:aws-chunked content-type:image/jpeg host:culinary-compass-img-bucket.s3.ap-south-1.amazonaws.com x-amz-content-sha256:STREAMING-UNSIGNED-PAYLOAD-TRAILER x-amz-date:20260624T171517Z x-amz-decoded-content-length:2319018 x-amz-sdk-checksum-algorithm:CRC32 x-amz-security-token:IQoJb3JpZ2luX2VjEHAaCmFwLXNvdXRoLTEiSDBGAiEAzvQtWUM3zfc46mYPkdl3IT6l+rF3MBscT4THKEt02SgCIQDK0goV4zM8PIDLCx2vKvC37bI+23cM8rDISr/EqH1bMyq+BQg5EAAaDDU5NTk2MDY5NTYyMiIMotU6/LEUVpdwWTp8KpsFVss+TMkiy7UozB9J4FD8LQ8RZLSjdwoHz1yT1zyDDrfk90FTdrb6KHJFg73PgBNnz29HAsyIGDrCsSiLZ7/cmGMpiLDXCMcPCeTR0Kvo4t2JoB1/g2ldNn6HnLgmsiIF443I4nedY/ZO6Lf0j7i2oLMhe0mnIs4H2Kkxs3r+Mjg9FuMsCJCFLJUWmaaFxiqQ/QDhCxF7YQyBrSxQr5fRiKmDeubWwW6EWSjaMD3fOADc+0VVOH2+86midvVqbR9KmW4Y6A+oe+4uk2BvAbyBTjF7EOOXtZ49QfqC3Sbv05DalnymGbPbp4o9uRQeiTX+RGcz7GdHsry4c4LqL34vIbjdi2NQzUqVEGGjFHcVCOt1Pz9cQKBuWtD9yybzW2TOYxQGGi6rTZht0L1GwprV4Svqo5y9Q09Q0QTgZFDQTPmqCuj1FC5jy9WOWVR3sC2wy0CZhWZ1sM92qCNMEoePF5Jci4AafMtmW6JcYrYnKnl26MH28h6p7Vvo3Psts0nKHS67xVa97YhOFEZA+27OXInnknnC/lkSn9t/zOrZJJsl+v/TKuLcejEH0VcKn56hS6nRSJcbmY+kRTgNwNEOIlJhmXgu/R065TkvnZPtjRc9Yzs+B2ps27CCSNjJXqfc5J6y8Wbr127k0oDPTba7vZAcH2xC0XanjudmRKFbULM+SQSRJrGdDFqVJNxWS2bOy7CRQ1G5VDgTP2jvALfL47u5Scc/SItiXiov6ByRbJz5UKoxaCO50II/4pWF6rOr+3BUkz03cGEaNlM9e7xuQIpxJMKUCvh966VqkrgU4vdfOZ/5E7/LDtXij7G4YXQAlLdac2ElUC9PlHVB+oRvg4rgW++uLY5+Lq6+A2u5EL2K1w6aIhN6sDog0DD6h/DRBjqwAYh/XvXSf3usVFYQqxKnxJlc8BnlGh4HilOKEsY3R3Xg3ReOzmOhlDJSNJq0Zq8gCO9C2WMGE3DLgwWFwGpISBM4RyTBlRXX44TJhsGtEYOCvH5mKCnyAt98HCi4pH5vAHCsnD6yrjjBvSzwyBFGRZ07q6/nkx1RKcKmo1oG2G232SqOLDpb9xiMcKjJ72l4AuEzJkydI9OnnFgcGuleBLQB/DNvwpqm+pxEmFNi/BzH x-amz-trailer:x-amz-checksum-crc32 content-encoding;content-type;host;x-amz-content-sha256;x-amz-date;x-amz-decoded-content-length;x-amz-sdk-checksum-algorithm;x-amz-security-token;x-amz-trailer STREAMING-UNSIGNED-PAYLOAD-TRAILER 2026-06-24 17:15:17 [botocore.auth] DEBUG: StringToSign: AWS4-HMAC-SHA256 20260624T171517Z 20260624/ap-south-1/s3/aws4_request f779811e436479237f16f667b0ecc32a193a769ca1bc7ea14baa4f6a7580e8bc 2026-06-24 17:15:17 [botocore.auth] DEBUG: Signature: 5882b163e864c9b1ec957a38b3d7fb4f06dcd02f49ae41d4f70ef2bb3718f976 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event request-created.s3.PutObject: calling handler > 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event request-created.s3.PutObject: calling handler 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event request-created.s3.PutObject: calling handler 2026-06-24 17:15:17 [botocore.endpoint] DEBUG: Sending http request: 2026-06-24 17:15:17 [botocore.httpsession] DEBUG: Certificate path: /home/ubuntu/culinary-compass-spiders/venv/lib/python3.12/site-packages/certifi/cacert.pem 2026-06-24 17:15:17 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): culinary-compass-img-bucket.s3.ap-south-1.amazonaws.com:443 2026-06-24 17:15:17 [botocore.awsrequest] DEBUG: Waiting for 100 Continue response. 2026-06-24 17:15:17 [botocore.awsrequest] DEBUG: 100 Continue response seen, now sending request body. 2026-06-24 17:15:17 [urllib3.connectionpool] DEBUG: https://culinary-compass-img-bucket.s3.ap-south-1.amazonaws.com:443 "PUT /zomato/8277346156/image-0.jpg HTTP/1.1" 200 0 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event before-parse.s3.PutObject: calling handler 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event before-parse.s3.PutObject: calling handler 2026-06-24 17:15:17 [botocore.parsers] DEBUG: Response headers: {'x-amz-id-2': 'QCji4mpHfbpYalDSOgQaexbTs3mYJA2cMVLOol7nXHPU5vo0hS9PmQAJtuIbHgKPXPlzTz29PGRhlnkb0tTBKAj/vfC98fPe', 'x-amz-request-id': 'CVWZHV8K20GZNKRK', 'Date': 'Wed, 24 Jun 2026 17:15:18 GMT', 'x-amz-server-side-encryption': 'AES256', 'ETag': '"172a02e40268f81565c65c17e3213dea"', 'x-amz-checksum-crc32': 'Wu4HyQ==', 'x-amz-checksum-type': 'FULL_OBJECT', 'Content-Length': '0', 'Server': 'AmazonS3'} 2026-06-24 17:15:17 [botocore.parsers] DEBUG: Response body: b'' 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event needs-retry.s3.PutObject: calling handler 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event needs-retry.s3.PutObject: calling handler 2026-06-24 17:15:17 [botocore.retryhandler] DEBUG: No retry needed. 2026-06-24 17:15:17 [botocore.hooks] DEBUG: Event needs-retry.s3.PutObject: calling handler > 2026-06-24 17:15:17 [s3transfer.utils] DEBUG: Releasing acquire 0/None 2026-06-24 17:15:17 [urllib3.connectionpool] DEBUG: Starting new HTTPS connection (1): prod-chat-v2-assets.s3-accelerate.amazonaws.com:443 2026-06-24 17:15:17 [urllib3.connectionpool] DEBUG: https://prod-chat-v2-assets.s3-accelerate.amazonaws.com:443 "GET /260255-1-49111930/BCDAB7C0-850E-48D5-8EDA-8B7D4C292856.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIA5RVPIJ4EZSVUZSRF%2F20260624%2Fap-southeast-1%2Fs3%2Faws4_request&X-Amz-Date=20260624T171516Z&X-Amz-Expires=604800&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEG8aDmFwLXNvdXRoZWFzdC0xIkgwRgIhAPho%2FE3tVuLjKrCV4Hav9rHH%2FtHVprlPrH9WrNaWZQuUAiEA2hy4NGdo%2Bo0OvH9SoLJICv0eeSDB0HfTURLtiGc1JDEq%2FgMINxAAGgw5MzEzMDE3MDc1MjkiDHdBUVKGyIKnleWsFirbA05qH4rrJinIjdeFW2rq2yiIdGkBwb7%2BT4TV0LASgG5H2RYPUUFiTCb9y2ZsaghJVVlIz0Lv6FKM8bSpQCCo9Fd5WQoePJt6RuhNMuKOkN%2FeyoN8N9%2FUe0tEDrDnneQBqUpxmzGxgRdm29qlPHcIuqmROM2vCufidK1L7aWWapzRbvmgjGUl2RnNnn00rd2pQNEh9u%2ByfyIttsb3f%2BD7a17LZI4NgMCD1YAtMMFITcA1nW03%2BcSssDORYbhjB0W4rDyQnQMbtO9gryC3cBHcdB7fi6iMoCteVggswA74gaSTj1x%2Bx4%2FTfX1DTzmj1BHA4vmC4RO0uU3U3vtfK7krUj%2BYg5Y7bzrlWNi0%2Bt56HrGE6w%2F465JuwmCB7RoqsKxMeezQmFAQwXhP57zu0RnXj6gtyIzssFqTlEvV5O7r0LT2Mird%2BQZ59GQYpGMjJTMLWfMLiuE3%2BAbuX%2BEyjU08FTccz7yZJ5gRWdxmrUYk5DFaBNygWlmTFalKwCeum8ErBDEGmLK5NlePT9b0plT%2FTTorQJY9OcVahj5UrXLefNwyzFp809Npl3TuL26K12DjNHD7DT1D7bJH6qygpph9pf%2BoletmwPa7wZ13N4818%2Fhw%2BsWVDWD56Kz7qXowsd%2Fv0QY6pAHMLqQp3Z2XzGPg6996YxnZrsotI3JW5wtkpQUtMtfCNA7UKj0pnU%2BUulm5UgkWs%2FDZMWhGhil0rtGqSUaeM3TxXloO7XiZTTynHiK0zQMmfdIPw59H6Mk4lWKVgit2YmEt%2FfXJxriNxJ6L9dBGAfEgBra1HkKvzdZBjKCZigetlRnCIKw3yYt8aT%2B2or4xqVXC8ApN2oQ2IPsnyy8%2Buxms92xRjA%3D%3D&X-Amz-SignedHeaders=host&X-Amz-Signature=b41eec780c3b0cd422a5e5ac4d01a8b7a807fca196cd14f4f1d43962d0ebfa3e HTTP/1.1" 200 1331348 2026-06-24 17:15:18 [boto3.s3.transfer] DEBUG: Opting out of CRT Transfer Manager. Preferred client: auto, CRT available: False, Instance Optimized: False 2026-06-24 17:15:18 [boto3.s3.transfer] DEBUG: Using default client. pid: 247397, thread: 123816394403968 2026-06-24 17:15:18 [s3transfer.utils] DEBUG: Acquiring 0 2026-06-24 17:15:18 [s3transfer.tasks] DEBUG: UploadSubmissionTask(transfer_id=0, {'transfer_future': }) about to wait for the following futures [] 2026-06-24 17:15:18 [s3transfer.tasks] DEBUG: UploadSubmissionTask(transfer_id=0, {'transfer_future': }) done waiting for dependent futures 2026-06-24 17:15:18 [s3transfer.tasks] DEBUG: Executing task UploadSubmissionTask(transfer_id=0, {'transfer_future': }) with kwargs {'client': , 'config': , 'osutil': , 'request_executor': , 'transfer_future': } 2026-06-24 17:15:18 [s3transfer.futures] DEBUG: Submitting task PutObjectTask(transfer_id=0, {'bucket': 'culinary-compass-img-bucket', 'key': 'zomato/8277346156/image-1.jpg', 'extra_args': {'ContentType': 'image/jpeg', 'ChecksumAlgorithm': 'CRC32'}}) to executor for transfer request: 0. 2026-06-24 17:15:18 [s3transfer.utils] DEBUG: Acquiring 0 2026-06-24 17:15:18 [s3transfer.tasks] DEBUG: PutObjectTask(transfer_id=0, {'bucket': 'culinary-compass-img-bucket', 'key': 'zomato/8277346156/image-1.jpg', 'extra_args': {'ContentType': 'image/jpeg', 'ChecksumAlgorithm': 'CRC32'}}) about to wait for the following futures [] 2026-06-24 17:15:18 [s3transfer.tasks] DEBUG: PutObjectTask(transfer_id=0, {'bucket': 'culinary-compass-img-bucket', 'key': 'zomato/8277346156/image-1.jpg', 'extra_args': {'ContentType': 'image/jpeg', 'ChecksumAlgorithm': 'CRC32'}}) done waiting for dependent futures 2026-06-24 17:15:18 [s3transfer.tasks] DEBUG: Executing task PutObjectTask(transfer_id=0, {'bucket': 'culinary-compass-img-bucket', 'key': 'zomato/8277346156/image-1.jpg', 'extra_args': {'ContentType': 'image/jpeg', 'ChecksumAlgorithm': 'CRC32'}}) with kwargs {'client': , 'fileobj': , 'bucket': 'culinary-compass-img-bucket', 'key': 'zomato/8277346156/image-1.jpg', 'extra_args': {'ContentType': 'image/jpeg', 'ChecksumAlgorithm': 'CRC32'}} 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2026-06-24 17:15:18 [s3transfer.utils] DEBUG: Releasing acquire 0/None 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler > 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler > 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event before-parameter-build.s3.PutObject: calling handler 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event before-endpoint-resolution.s3: calling handler 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event before-endpoint-resolution.s3: calling handler > 2026-06-24 17:15:18 [botocore.regions] DEBUG: Calling endpoint provider with parameters: {'Bucket': 'culinary-compass-img-bucket', 'Region': 'ap-south-1', 'UseFIPS': False, 'UseDualStack': False, 'ForcePathStyle': False, 'Accelerate': False, 'UseGlobalEndpoint': False, 'Key': 'zomato/8277346156/image-1.jpg', 'DisableMultiRegionAccessPoints': False, 'UseArnRegion': True} 2026-06-24 17:15:18 [botocore.regions] DEBUG: Endpoint provider result: https://culinary-compass-img-bucket.s3.ap-south-1.amazonaws.com 2026-06-24 17:15:18 [botocore.regions] DEBUG: Selecting from endpoint provider's list of auth schemes: "sigv4". User selected auth scheme is: "None" 2026-06-24 17:15:18 [botocore.regions] DEBUG: Selected auth type "v4" as "v4" with signing context params: {'region': 'ap-south-1', 'signing_name': 's3', 'disableDoubleEncoding': True} 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event before-call.s3.PutObject: calling handler 2026-06-24 17:15:18 [botocore.handlers] DEBUG: Adding expect 100 continue header to request. 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event before-call.s3.PutObject: calling handler > 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event before-call.s3.PutObject: calling handler 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event before-call.s3.PutObject: calling handler 2026-06-24 17:15:18 [botocore.endpoint] DEBUG: Making request for OperationModel(name=PutObject) with params: {'url_path': '/zomato/8277346156/image-1.jpg', 'query_string': {}, 'method': 'PUT', 'headers': {'Content-Type': 'image/jpeg', 'x-amz-sdk-checksum-algorithm': 'CRC32', 'User-Agent': 'Boto3/1.42.12 md/Botocore#1.42.12 ua/2.1 os/linux#6.17.0-1013-aws md/arch#x86_64 lang/python#3.12.3 md/pyimpl#CPython m/b,D,G,Z cfg/retry-mode#legacy Botocore/1.42.12', 'Expect': '100-continue', 'Transfer-Encoding': 'chunked', 'Content-Encoding': 'aws-chunked', 'X-Amz-Trailer': 'x-amz-checksum-crc32', 'X-Amz-Decoded-Content-Length': '1331348'}, 'body': , 'auth_path': '/culinary-compass-img-bucket/zomato/8277346156/image-1.jpg', 'url': 'https://culinary-compass-img-bucket.s3.ap-south-1.amazonaws.com/zomato/8277346156/image-1.jpg', 'context': {'client_region': 'ap-south-1', 'client_config': , 'has_streaming_input': True, 'auth_type': 'v4', 'unsigned_payload': None, 'auth_options': ['aws.auth#sigv4'], 's3_redirect': {'redirected': False, 'bucket': 'culinary-compass-img-bucket', 'params': {'Bucket': 'culinary-compass-img-bucket', 'Key': 'zomato/8277346156/image-1.jpg', 'Body': , 'ContentType': 'image/jpeg', 'ChecksumAlgorithm': 'CRC32'}}, 'input_params': {'Bucket': 'culinary-compass-img-bucket', 'Key': 'zomato/8277346156/image-1.jpg'}, 'signing': {'region': 'ap-south-1', 'signing_name': 's3', 'disableDoubleEncoding': True}, 'endpoint_properties': {'authSchemes': [{'disableDoubleEncoding': True, 'name': 'sigv4', 'signingName': 's3', 'signingRegion': 'ap-south-1'}]}, 'checksum': {'request_algorithm': {'algorithm': 'crc32', 'in': 'trailer', 'name': 'x-amz-checksum-crc32'}}}} 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event request-created.s3.PutObject: calling handler 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event request-created.s3.PutObject: calling handler > 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event choose-signer.s3.PutObject: calling handler 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event before-sign.s3.PutObject: calling handler 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event before-sign.s3.PutObject: calling handler 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event before-sign.s3.PutObject: calling handler > 2026-06-24 17:15:18 [botocore.auth] DEBUG: Calculating signature using v4 auth. 2026-06-24 17:15:18 [botocore.auth] DEBUG: CanonicalRequest: PUT /zomato/8277346156/image-1.jpg content-encoding:aws-chunked content-type:image/jpeg host:culinary-compass-img-bucket.s3.ap-south-1.amazonaws.com x-amz-content-sha256:STREAMING-UNSIGNED-PAYLOAD-TRAILER x-amz-date:20260624T171518Z x-amz-decoded-content-length:1331348 x-amz-sdk-checksum-algorithm:CRC32 x-amz-security-token:IQoJb3JpZ2luX2VjEHAaCmFwLXNvdXRoLTEiSDBGAiEAzvQtWUM3zfc46mYPkdl3IT6l+rF3MBscT4THKEt02SgCIQDK0goV4zM8PIDLCx2vKvC37bI+23cM8rDISr/EqH1bMyq+BQg5EAAaDDU5NTk2MDY5NTYyMiIMotU6/LEUVpdwWTp8KpsFVss+TMkiy7UozB9J4FD8LQ8RZLSjdwoHz1yT1zyDDrfk90FTdrb6KHJFg73PgBNnz29HAsyIGDrCsSiLZ7/cmGMpiLDXCMcPCeTR0Kvo4t2JoB1/g2ldNn6HnLgmsiIF443I4nedY/ZO6Lf0j7i2oLMhe0mnIs4H2Kkxs3r+Mjg9FuMsCJCFLJUWmaaFxiqQ/QDhCxF7YQyBrSxQr5fRiKmDeubWwW6EWSjaMD3fOADc+0VVOH2+86midvVqbR9KmW4Y6A+oe+4uk2BvAbyBTjF7EOOXtZ49QfqC3Sbv05DalnymGbPbp4o9uRQeiTX+RGcz7GdHsry4c4LqL34vIbjdi2NQzUqVEGGjFHcVCOt1Pz9cQKBuWtD9yybzW2TOYxQGGi6rTZht0L1GwprV4Svqo5y9Q09Q0QTgZFDQTPmqCuj1FC5jy9WOWVR3sC2wy0CZhWZ1sM92qCNMEoePF5Jci4AafMtmW6JcYrYnKnl26MH28h6p7Vvo3Psts0nKHS67xVa97YhOFEZA+27OXInnknnC/lkSn9t/zOrZJJsl+v/TKuLcejEH0VcKn56hS6nRSJcbmY+kRTgNwNEOIlJhmXgu/R065TkvnZPtjRc9Yzs+B2ps27CCSNjJXqfc5J6y8Wbr127k0oDPTba7vZAcH2xC0XanjudmRKFbULM+SQSRJrGdDFqVJNxWS2bOy7CRQ1G5VDgTP2jvALfL47u5Scc/SItiXiov6ByRbJz5UKoxaCO50II/4pWF6rOr+3BUkz03cGEaNlM9e7xuQIpxJMKUCvh966VqkrgU4vdfOZ/5E7/LDtXij7G4YXQAlLdac2ElUC9PlHVB+oRvg4rgW++uLY5+Lq6+A2u5EL2K1w6aIhN6sDog0DD6h/DRBjqwAYh/XvXSf3usVFYQqxKnxJlc8BnlGh4HilOKEsY3R3Xg3ReOzmOhlDJSNJq0Zq8gCO9C2WMGE3DLgwWFwGpISBM4RyTBlRXX44TJhsGtEYOCvH5mKCnyAt98HCi4pH5vAHCsnD6yrjjBvSzwyBFGRZ07q6/nkx1RKcKmo1oG2G232SqOLDpb9xiMcKjJ72l4AuEzJkydI9OnnFgcGuleBLQB/DNvwpqm+pxEmFNi/BzH x-amz-trailer:x-amz-checksum-crc32 content-encoding;content-type;host;x-amz-content-sha256;x-amz-date;x-amz-decoded-content-length;x-amz-sdk-checksum-algorithm;x-amz-security-token;x-amz-trailer STREAMING-UNSIGNED-PAYLOAD-TRAILER 2026-06-24 17:15:18 [botocore.auth] DEBUG: StringToSign: AWS4-HMAC-SHA256 20260624T171518Z 20260624/ap-south-1/s3/aws4_request 91d8c986c44fb57a5a6c9e86a018f8b9820ba4280c4967dcb6fad738f65d6ee5 2026-06-24 17:15:18 [botocore.auth] DEBUG: Signature: 12fec214d0a6c69b4a8b56459989fb48800306eec557c32cdb3b61e84d8f4e94 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event request-created.s3.PutObject: calling handler > 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event request-created.s3.PutObject: calling handler 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event request-created.s3.PutObject: calling handler 2026-06-24 17:15:18 [botocore.endpoint] DEBUG: Sending http request: 2026-06-24 17:15:18 [botocore.httpsession] DEBUG: Certificate path: /home/ubuntu/culinary-compass-spiders/venv/lib/python3.12/site-packages/certifi/cacert.pem 2026-06-24 17:15:18 [botocore.awsrequest] DEBUG: Waiting for 100 Continue response. 2026-06-24 17:15:18 [botocore.awsrequest] DEBUG: 100 Continue response seen, now sending request body. 2026-06-24 17:15:18 [urllib3.connectionpool] DEBUG: https://culinary-compass-img-bucket.s3.ap-south-1.amazonaws.com:443 "PUT /zomato/8277346156/image-1.jpg HTTP/1.1" 200 0 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event before-parse.s3.PutObject: calling handler 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event before-parse.s3.PutObject: calling handler 2026-06-24 17:15:18 [botocore.parsers] DEBUG: Response headers: {'x-amz-id-2': '9vmkCO1r8xuZ3Vs9S1r+WJ54W7NOQbrPWwnVmWCM4MDR0XAErODRTs0O2hl5jhf6IyeaKXVqriJr/1nhbzt/KtTBqobEXlJu', 'x-amz-request-id': '3Z6JVN13XJB2G2V5', 'Date': 'Wed, 24 Jun 2026 17:15:19 GMT', 'x-amz-server-side-encryption': 'AES256', 'ETag': '"7ae857d172e606bc6f88a48eca0726ac"', 'x-amz-checksum-crc32': 'FfP1VQ==', 'x-amz-checksum-type': 'FULL_OBJECT', 'Content-Length': '0', 'Server': 'AmazonS3'} 2026-06-24 17:15:18 [botocore.parsers] DEBUG: Response body: b'' 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event needs-retry.s3.PutObject: calling handler 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event needs-retry.s3.PutObject: calling handler 2026-06-24 17:15:18 [botocore.retryhandler] DEBUG: No retry needed. 2026-06-24 17:15:18 [botocore.hooks] DEBUG: Event needs-retry.s3.PutObject: calling handler > 2026-06-24 17:15:18 [s3transfer.utils] DEBUG: Releasing acquire 0/None 2026-06-24 17:15:18 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.zomato.com/merchant-api/orders/order-details?tab_id=8277346156&view=customer_complaints_v2> None 2026-06-24 17:15:18 [scrapy.core.engine] INFO: Closing spider (finished) 2026-06-24 17:15:18 [openai._base_client] DEBUG: Request options: {'method': 'post', 'url': '/responses', 'files': None, 'idempotency_key': 'stainless-python-retry-29630ae6-d37d-47f1-9434-782a9555aea1', 'content': None, 'json_data': {'input': ' You are an expert restaurant complaint analyst.\n Analyze the customer complaint using Aspect-Based Sentiment Analysis (ABSA).\n Your job is to identify every distinct aspect mentioned in the complaint and classify each one.\n Use this taxonomy of aspects and corresponding subcategories/root:\n Food:\n - Taste\n - Food Quality\n - Portion Size / Quantity\n - Freshness\n - Presentation\n - Food Temperature\n - Consistency\n - Menu Variety\n Service:\n - Staff Behavior\n - Friendliness\n - Attentiveness\n - Speed of Service\n - Order Accuracy\n - Problem Resolution\n Delivery:\n - Delivery Time\n - Packaging Quality\n - Food Spillage\n - Order Completeness\n - Food Condition on Arrival\n Value:\n - Pricing\n - Value for Money\n Hygiene:\n - Cleanliness\n - Food Safety\n Ambience:\n - Seating\n - Noise\n - Lighting\n - Comfort\n For each aspect detected, return:\n 1. aspect\n 2. subcategory/root cause\n 3. sentiment (Positive, Negative, Neutral, Mixed)\n 4. severity (Low, Medium, High)\n 5. intent (Praise, Complaint, Suggestion, Refund Request, Churn Risk, Loyalty Signal)\n 6. evidence (exact phrase from the complaint supporting the classification)\n Rules:\n - A single complaint may contain multiple aspects.\n - Extract ALL aspects mentioned.\n - Do not infer aspects not mentioned.\n - Do not infer subcategories not mentioned.\n - If one sentence contains both positive and negative signals for the same aspect, mark sentiment as Mixed.\n - Be strict and operationally useful.\n - Focus on actionable business insights.\n - Also provide an overall complaint sentiment (Positive, Negative, Neutral, Mixed).\n Return output ONLY in valid JSON using this format:\n {\n "overall_sentiment": "",\n "aspects": [\n {\n "aspect": "",\n "subcategory": "",\n "sentiment": "",\n "severity": "",\n "intent": "",\n "evidence": ""\n }\n ]\n }\n Customer Comment:I have ordered two drinks But I got dessert from the restaurant which I have ordered', 'model': 'openai.gpt-oss-120b'}} 2026-06-24 17:15:18 [openai._base_client] DEBUG: Sending HTTP Request: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses 2026-06-24 17:15:18 [httpcore.connection] DEBUG: connect_tcp.started host='bedrock-mantle.ap-south-1.api.aws' port=443 local_address=None timeout=5.0 socket_options=None 2026-06-24 17:15:18 [httpcore.connection] DEBUG: connect_tcp.complete return_value= 2026-06-24 17:15:18 [httpcore.connection] DEBUG: start_tls.started ssl_context= server_hostname='bedrock-mantle.ap-south-1.api.aws' timeout=5.0 2026-06-24 17:15:18 [httpcore.connection] DEBUG: start_tls.complete return_value= 2026-06-24 17:15:18 [httpcore.http11] DEBUG: send_request_headers.started request= 2026-06-24 17:15:18 [httpcore.http11] DEBUG: send_request_headers.complete 2026-06-24 17:15:18 [httpcore.http11] DEBUG: send_request_body.started request= 2026-06-24 17:15:18 [httpcore.http11] DEBUG: send_request_body.complete 2026-06-24 17:15:18 [httpcore.http11] DEBUG: receive_response_headers.started request= 2026-06-24 17:15:20 [httpcore.http11] DEBUG: receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Date', b'Wed, 24 Jun 2026 17:15:20 GMT'), (b'Content-Type', b'application/json'), (b'Content-Length', b'2838'), (b'Connection', b'keep-alive'), (b'x-amzn-requestid', b'req_3mcshixszeq24cehh3avl3mjyrq2hxfmrwudahptprnowvq22y5q'), (b'x-request-id', b'req_3mcshixszeq24cehh3avl3mjyrq2hxfmrwudahptprnowvq22y5q'), (b'vary', b'origin, access-control-request-method, access-control-request-headers'), (b'access-control-allow-origin', b'*'), (b'access-control-expose-headers', b'x-amzn-requestid,x-request-id,date')]) 2026-06-24 17:15:20 [httpx] INFO: HTTP Request: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses "HTTP/1.1 200 OK" 2026-06-24 17:15:20 [httpcore.http11] DEBUG: receive_response_body.started request= 2026-06-24 17:15:20 [httpcore.http11] DEBUG: receive_response_body.complete 2026-06-24 17:15:20 [httpcore.http11] DEBUG: response_closed.started 2026-06-24 17:15:20 [httpcore.http11] DEBUG: response_closed.complete 2026-06-24 17:15:20 [openai._base_client] DEBUG: HTTP Response: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses "200 OK" Headers({'date': 'Wed, 24 Jun 2026 17:15:20 GMT', 'content-type': 'application/json', 'content-length': '2838', 'connection': 'keep-alive', 'x-amzn-requestid': 'req_3mcshixszeq24cehh3avl3mjyrq2hxfmrwudahptprnowvq22y5q', 'x-request-id': 'req_3mcshixszeq24cehh3avl3mjyrq2hxfmrwudahptprnowvq22y5q', 'vary': 'origin, access-control-request-method, access-control-request-headers', 'access-control-allow-origin': '*', 'access-control-expose-headers': 'x-amzn-requestid,x-request-id,date'}) 2026-06-24 17:15:20 [openai._base_client] DEBUG: request_id: req_3mcshixszeq24cehh3avl3mjyrq2hxfmrwudahptprnowvq22y5q 2026-06-24 17:15:20 [scrapy.statscollectors] INFO: Dumping Scrapy stats: {'downloader/request_bytes': 23884, 'downloader/request_count': 5, 'downloader/request_method_count/GET': 4, 'downloader/request_method_count/POST': 1, 'downloader/response_bytes': 34349, 'downloader/response_count': 5, 'downloader/response_status_count/200': 5, 'elapsed_time_seconds': 10.912954, 'finish_reason': 'finished', 'finish_time': datetime.datetime(2026, 6, 24, 17, 15, 20, 708735, tzinfo=datetime.timezone.utc), 'httpcompression/response_bytes': 31041, 'httpcompression/response_count': 3, 'item_scraped_count': 2, 'items_per_minute': None, 'log_count/DEBUG': 218, 'log_count/INFO': 12, 'log_count/WARNING': 2, 'memusage/max': 152350720, 'memusage/startup': 152350720, 'request_depth_max': 3, 'response_received_count': 5, 'responses_per_minute': None, 'scheduler/dequeued': 5, 'scheduler/dequeued/memory': 5, 'scheduler/enqueued': 5, 'scheduler/enqueued/memory': 5, 'start_time': datetime.datetime(2026, 6, 24, 17, 15, 9, 795781, tzinfo=datetime.timezone.utc)} 2026-06-24 17:15:20 [scrapy.core.engine] INFO: Spider closed (finished) 2026-06-24 17:15:21 [httpcore.connection] DEBUG: close.started 2026-06-24 17:15:21 [httpcore.connection] DEBUG: close.complete