XML Logging Diagnostic

1. Log Directory Check

✓ Log directory exists: /home/storm/sites/lnieg-nimsite-uk/public/logs/

Permissions: 0755

✓ Directory is writable

2. XML File Check

✓ XML file exists: /home/storm/sites/lnieg-nimsite-uk/public/logs/visitors.xml

Size: 149411 bytes

Last modified: 2026-02-21 00:31:25

Permissions: 0644

✓ File is writable

✓ XML is valid and loadable

Conversations in file: 30

3. XSL File Check

✓ XSL file exists

Size: 15711 bytes

✓ XSL has exchanges support

4. PHP Error Log

Found relevant errors:

2026-01-30 11:10:29	cpadmin	https://cambridgepixel.com/customers/	Fatal Error:  Uncaught Error: Call to a member function authenticated() on null in /home/storm/sites/lnieg-nimsite-uk/public/site/assets/cache/FileCompiler/site/templates/customers.php:12 Stack trace: #0 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/TemplateFile.php(328): require() #1 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(413): ProcessWire\TemplateFile->___render() #2 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #3 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #4 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/PageRender.module(581): ProcessWire\Wire->__call() #5 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(416): ProcessWire\PageRender->___renderPage() #6 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #7 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #8 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(1094): ProcessWire\Wire->__call() #9 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #10 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/Process/ProcessPageView.module(193): ProcessWire\Wire->__call() #11 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/Process/ProcessPageView.module(114): ProcessWire\ProcessPageView->renderPage() #12 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(416): ProcessWire\ProcessPageView->___execute() #13 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #14 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #15 /home/storm/sites/lnieg-nimsite-uk/public/index.php(55): ProcessWire\Wire->__call() #16 {main}   thrown (line 12 of /home/storm/sites/lnieg-nimsite-uk/public/site/assets/cache/FileCompiler/site/templates/customers.php)
2026-02-12 09:50:28	alan	https://cambridgepixel.com/test-pdf-extraction/	Fatal Error:  Uncaught Error: Call to a member function get() on string in /home/storm/sites/lnieg-nimsite-uk/public/site/templates/test-pdf-extraction.php:14 Stack trace: #0 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/TemplateFile.php(328): require() #1 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(413): ProcessWire\TemplateFile->___render() #2 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #3 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #4 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/PageRender.module(581): ProcessWire\Wire->__call() #5 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(416): ProcessWire\PageRender->___renderPage() #6 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #7 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #8 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(1094): ProcessWire\Wire->__call() #9 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #10 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/Process/ProcessPageView.module(193): ProcessWire\Wire->__call() #11 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/Process/ProcessPageView.module(114): ProcessWire\ProcessPageView->renderPage() #12 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(416): ProcessWire\ProcessPageView->___execute() #13 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #14 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #15 /home/storm/sites/lnieg-nimsite-uk/public/index.php(55): ProcessWire\Wire->__call() #16 {main}   thrown (line 14 of /home/storm/sites/lnieg-nimsite-uk/public/site/templates/test-pdf-extraction.php)
2026-02-12 09:54:37	alan	https://cambridgepixel.com/test-pdf-extraction/	Fatal Error:  Uncaught Error: Call to a member function get() on string in /home/storm/sites/lnieg-nimsite-uk/public/site/templates/test-pdf-extraction.php:14 Stack trace: #0 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/TemplateFile.php(328): require() #1 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(413): ProcessWire\TemplateFile->___render() #2 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #3 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #4 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/PageRender.module(581): ProcessWire\Wire->__call() #5 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(416): ProcessWire\PageRender->___renderPage() #6 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #7 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #8 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(1094): ProcessWire\Wire->__call() #9 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #10 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/Process/ProcessPageView.module(193): ProcessWire\Wire->__call() #11 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/Process/ProcessPageView.module(114): ProcessWire\ProcessPageView->renderPage() #12 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(416): ProcessWire\ProcessPageView->___execute() #13 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #14 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #15 /home/storm/sites/lnieg-nimsite-uk/public/index.php(55): ProcessWire\Wire->__call() #16 {main}   thrown (line 14 of /home/storm/sites/lnieg-nimsite-uk/public/site/templates/test-pdf-extraction.php)
2026-02-12 09:54:39	alan	https://cambridgepixel.com/test-pdf-extraction/	Fatal Error:  Uncaught Error: Call to a member function get() on string in /home/storm/sites/lnieg-nimsite-uk/public/site/templates/test-pdf-extraction.php:14 Stack trace: #0 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/TemplateFile.php(328): require() #1 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(413): ProcessWire\TemplateFile->___render() #2 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #3 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #4 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/PageRender.module(581): ProcessWire\Wire->__call() #5 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(416): ProcessWire\PageRender->___renderPage() #6 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #7 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #8 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(1094): ProcessWire\Wire->__call() #9 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #10 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/Process/ProcessPageView.module(193): ProcessWire\Wire->__call() #11 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/Process/ProcessPageView.module(114): ProcessWire\ProcessPageView->renderPage() #12 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(416): ProcessWire\ProcessPageView->___execute() #13 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #14 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #15 /home/storm/sites/lnieg-nimsite-uk/public/index.php(55): ProcessWire\Wire->__call() #16 {main}   thrown (line 14 of /home/storm/sites/lnieg-nimsite-uk/public/site/templates/test-pdf-extraction.php)
2026-02-12 09:59:35	alan	https://cambridgepixel.com/test-pdf-extraction/	Fatal Error:  Uncaught Error: Class "ProcessWire\CURLFile" not found in /home/storm/sites/lnieg-nimsite-uk/public/site/ready.php:184 Stack trace: #0 /home/storm/sites/lnieg-nimsite-uk/public/site/templates/test-pdf-extraction.php(99): ProcessWire\extractPdfToJson() #1 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/TemplateFile.php(328): require('...') #2 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(413): ProcessWire\TemplateFile->___render() #3 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #4 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #5 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/PageRender.module(581): ProcessWire\Wire->__call() #6 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(416): ProcessWire\PageRender->___renderPage() #7 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #8 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #9 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(1094): ProcessWire\Wire->__call() #10 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #11 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/Process/ProcessPageView.module(193): ProcessWire\Wire->__call() #12 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/Process/ProcessPageView.module(114): ProcessWire\ProcessPageView->renderPage() #13 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(416): ProcessWire\ProcessPageView->___execute() #14 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #15 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #16 /home/storm/sites/lnieg-nimsite-uk/public/index.php(55): ProcessWire\Wire->__call() #17 {main}   thrown (line 184 of /home/storm/sites/lnieg-nimsite-uk/public/site/ready.php)
2026-02-13 13:53:13	guest	https://cambridgepixel.com/search/	Parse Error:  syntax error, unexpected token "}" (line 223 of /home/storm/sites/lnieg-nimsite-uk/public/site/assets/cache/FileCompiler/site/templates/search.php)
2026-02-13 13:53:16	guest	https://cambridgepixel.com/search/	Parse Error:  syntax error, unexpected token "}" (line 223 of /home/storm/sites/lnieg-nimsite-uk/public/site/assets/cache/FileCompiler/site/templates/search.php)
2026-02-13 13:53:19	guest	https://cambridgepixel.com/search/	Parse Error:  syntax error, unexpected token "}" (line 223 of /home/storm/sites/lnieg-nimsite-uk/public/site/assets/cache/FileCompiler/site/templates/search.php)
2026-02-13 13:57:13	alan	https://cambridgepixel.com/search/	Parse Error:  syntax error, unexpected token "}" (line 223 of /home/storm/sites/lnieg-nimsite-uk/public/site/assets/cache/FileCompiler/site/templates/search.php)

Last 30 log entries:

2026-01-29 19:56:47	guest	https://cambridgepixel.com/ajax/ai-search/?q=Security_applications&user_email=	Gemini API Error: {   "error": {     "code": 429,     "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\nPlease retry in 12.519924868s.",     "status": "RESOURCE_EXHAUSTED",     "details": [       {         "@type": "type.googleapis.com/google.rpc.Help",         "links": [           {             "description": "Learn more about Gemini API quotas",             "url": "https://ai.google.dev/gemini-api/docs/rate-limits"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.QuotaFailure",         "violations": [           {             "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",             "quotaId": "GenerateRequestsPerDayPerProjectPerModel-FreeTier",             "quotaDimensions": {               "location": "global",               "model": "gemini-2.5-flash"             },             "quotaValue": "20"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.RetryInfo",         "retryDelay": "12s"       }     ]   } }
2026-01-29 19:59:52	guest	https://cambridgepixel.com/ajax/ai-search/?q=Radar_tracking_and_data_fusion&user_email=	Gemini API Error: {   "error": {     "code": 429,     "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\nPlease retry in 7.077561804s.",     "status": "RESOURCE_EXHAUSTED",     "details": [       {         "@type": "type.googleapis.com/google.rpc.Help",         "links": [           {             "description": "Learn more about Gemini API quotas",             "url": "https://ai.google.dev/gemini-api/docs/rate-limits"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.QuotaFailure",         "violations": [           {             "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",             "quotaId": "GenerateRequestsPerDayPerProjectPerModel-FreeTier",             "quotaDimensions": {               "location": "global",               "model": "gemini-2.5-flash"             },             "quotaValue": "20"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.RetryInfo",         "retryDelay": "7s"       }     ]   } }
2026-01-29 20:01:48	guest	https://cambridgepixel.com/ajax/ai-search/?q=3D_radar_tracking&user_email=	Gemini API Error: {   "error": {     "code": 429,     "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\nPlease retry in 11.301895151s.",     "status": "RESOURCE_EXHAUSTED",     "details": [       {         "@type": "type.googleapis.com/google.rpc.Help",         "links": [           {             "description": "Learn more about Gemini API quotas",             "url": "https://ai.google.dev/gemini-api/docs/rate-limits"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.QuotaFailure",         "violations": [           {             "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",             "quotaId": "GenerateRequestsPerDayPerProjectPerModel-FreeTier",             "quotaDimensions": {               "location": "global",               "model": "gemini-2.5-flash"             },             "quotaValue": "20"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.RetryInfo",         "retryDelay": "11s"       }     ]   } }
2026-01-29 20:03:04	guest	https://cambridgepixel.com/ajax/ai-search/?q=SPx_Server_for_radar_data&user_email=	Gemini API Error: {   "error": {     "code": 429,     "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\nPlease retry in 55.389739774s.",     "status": "RESOURCE_EXHAUSTED",     "details": [       {         "@type": "type.googleapis.com/google.rpc.Help",         "links": [           {             "description": "Learn more about Gemini API quotas",             "url": "https://ai.google.dev/gemini-api/docs/rate-limits"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.QuotaFailure",         "violations": [           {             "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",             "quotaId": "GenerateRequestsPerDayPerProjectPerModel-FreeTier",             "quotaDimensions": {               "location": "global",               "model": "gemini-2.5-flash"             },             "quotaValue": "20"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.RetryInfo",         "retryDelay": "55s"       }     ]   } }
2026-01-29 20:07:21	guest	https://cambridgepixel.com/ajax/ai-search/?q=Small_target_tracking_radar&user_email=	Gemini API Error: {   "error": {     "code": 429,     "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\nPlease retry in 38.695239777s.",     "status": "RESOURCE_EXHAUSTED",     "details": [       {         "@type": "type.googleapis.com/google.rpc.Help",         "links": [           {             "description": "Learn more about Gemini API quotas",             "url": "https://ai.google.dev/gemini-api/docs/rate-limits"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.QuotaFailure",         "violations": [           {             "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",             "quotaId": "GenerateRequestsPerDayPerProjectPerModel-FreeTier",             "quotaDimensions": {               "model": "gemini-2.5-flash",               "location": "global"             },             "quotaValue": "20"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.RetryInfo",         "retryDelay": "38s"       }     ]   } }
2026-01-29 20:09:41	guest	https://cambridgepixel.com/ajax/ai-search/?q=Radar_Display_Applications&user_email=	Gemini API Error: {   "error": {     "code": 429,     "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\nPlease retry in 18.099150736s.",     "status": "RESOURCE_EXHAUSTED",     "details": [       {         "@type": "type.googleapis.com/google.rpc.Help",         "links": [           {             "description": "Learn more about Gemini API quotas",             "url": "https://ai.google.dev/gemini-api/docs/rate-limits"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.QuotaFailure",         "violations": [           {             "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",             "quotaId": "GenerateRequestsPerDayPerProjectPerModel-FreeTier",             "quotaDimensions": {               "model": "gemini-2.5-flash",               "location": "global"             },             "quotaValue": "20"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.RetryInfo",         "retryDelay": "18s"       }     ]   } }
2026-01-29 20:20:24	guest	https://cambridgepixel.com/ajax/ai-search/?q=Radar_tracking_software&user_email=	Gemini API Error: {   "error": {     "code": 429,     "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\nPlease retry in 35.837613121s.",     "status": "RESOURCE_EXHAUSTED",     "details": [       {         "@type": "type.googleapis.com/google.rpc.Help",         "links": [           {             "description": "Learn more about Gemini API quotas",             "url": "https://ai.google.dev/gemini-api/docs/rate-limits"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.QuotaFailure",         "violations": [           {             "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",             "quotaId": "GenerateRequestsPerDayPerProjectPerModel-FreeTier",             "quotaDimensions": {               "model": "gemini-2.5-flash",               "location": "global"             },             "quotaValue": "20"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.RetryInfo",         "retryDelay": "35s"       }     ]   } }
2026-01-29 20:34:09	guest	https://cambridgepixel.com/ajax/ai-search/?q=SPx_radar_tracking_software&user_email=	Gemini API Error: {   "error": {     "code": 429,     "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\nPlease retry in 50.790547078s.",     "status": "RESOURCE_EXHAUSTED",     "details": [       {         "@type": "type.googleapis.com/google.rpc.Help",         "links": [           {             "description": "Learn more about Gemini API quotas",             "url": "https://ai.google.dev/gemini-api/docs/rate-limits"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.QuotaFailure",         "violations": [           {             "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",             "quotaId": "GenerateRequestsPerDayPerProjectPerModel-FreeTier",             "quotaDimensions": {               "location": "global",               "model": "gemini-2.5-flash"             },             "quotaValue": "20"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.RetryInfo",         "retryDelay": "50s"       }     ]   } }
2026-01-29 20:39:03	guest	https://cambridgepixel.com/ajax/ai-search/?q=Vessel_tracking&user_email=	Gemini API Error: {   "error": {     "code": 429,     "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\nPlease retry in 56.5941289s.",     "status": "RESOURCE_EXHAUSTED",     "details": [       {         "@type": "type.googleapis.com/google.rpc.Help",         "links": [           {             "description": "Learn more about Gemini API quotas",             "url": "https://ai.google.dev/gemini-api/docs/rate-limits"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.QuotaFailure",         "violations": [           {             "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",             "quotaId": "GenerateRequestsPerDayPerProjectPerModel-FreeTier",             "quotaDimensions": {               "location": "global",               "model": "gemini-2.5-flash"             },             "quotaValue": "20"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.RetryInfo",         "retryDelay": "56s"       }     ]   } }
2026-01-29 20:43:55	guest	https://cambridgepixel.com/ajax/ai-search/?q=Multi-sensor_target_fusion&user_email=	Gemini API Error: {   "error": {     "code": 429,     "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\nPlease retry in 4.447511348s.",     "status": "RESOURCE_EXHAUSTED",     "details": [       {         "@type": "type.googleapis.com/google.rpc.Help",         "links": [           {             "description": "Learn more about Gemini API quotas",             "url": "https://ai.google.dev/gemini-api/docs/rate-limits"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.QuotaFailure",         "violations": [           {             "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",             "quotaId": "GenerateRequestsPerDayPerProjectPerModel-FreeTier",             "quotaDimensions": {               "location": "global",               "model": "gemini-2.5-flash"             },             "quotaValue": "20"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.RetryInfo",         "retryDelay": "4s"       }     ]   } }
2026-01-29 20:54:44	guest	https://cambridgepixel.com/ajax/ai-search/?q=Radar_Tracking_Software_for_Air_Traffic_Control&user_email=	Gemini API Error: {   "error": {     "code": 429,     "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\nPlease retry in 15.672413382s.",     "status": "RESOURCE_EXHAUSTED",     "details": [       {         "@type": "type.googleapis.com/google.rpc.Help",         "links": [           {             "description": "Learn more about Gemini API quotas",             "url": "https://ai.google.dev/gemini-api/docs/rate-limits"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.QuotaFailure",         "violations": [           {             "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",             "quotaId": "GenerateRequestsPerDayPerProjectPerModel-FreeTier",             "quotaDimensions": {               "model": "gemini-2.5-flash",               "location": "global"             },             "quotaValue": "20"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.RetryInfo",         "retryDelay": "15s"       }     ]   } }
2026-01-29 20:59:00	guest	https://cambridgepixel.com/ajax/ai-search/?q=Radar_track_management&user_email=	Gemini API Error: {   "error": {     "code": 429,     "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\nPlease retry in 59.451620895s.",     "status": "RESOURCE_EXHAUSTED",     "details": [       {         "@type": "type.googleapis.com/google.rpc.Help",         "links": [           {             "description": "Learn more about Gemini API quotas",             "url": "https://ai.google.dev/gemini-api/docs/rate-limits"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.QuotaFailure",         "violations": [           {             "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",             "quotaId": "GenerateRequestsPerDayPerProjectPerModel-FreeTier",             "quotaDimensions": {               "model": "gemini-2.5-flash",               "location": "global"             },             "quotaValue": "20"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.RetryInfo",         "retryDelay": "59s"       }     ]   } }
2026-01-30 02:09:11	guest	https://cambridgepixel.com/ajax/ai-search/?q=spx_&user_email=	Gemini API Error: {   "error": {     "code": 429,     "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\nPlease retry in 48.899405374s.",     "status": "RESOURCE_EXHAUSTED",     "details": [       {         "@type": "type.googleapis.com/google.rpc.Help",         "links": [           {             "description": "Learn more about Gemini API quotas",             "url": "https://ai.google.dev/gemini-api/docs/rate-limits"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.QuotaFailure",         "violations": [           {             "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",             "quotaId": "GenerateRequestsPerDayPerProjectPerModel-FreeTier",             "quotaDimensions": {               "location": "global",               "model": "gemini-2.5-flash"             },             "quotaValue": "20"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.RetryInfo",         "retryDelay": "48s"       }     ]   } }
2026-01-30 02:09:18	guest	https://cambridgepixel.com/ajax/ai-search/?q=spx_server&user_email=	Gemini API Error: {   "error": {     "code": 429,     "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\nPlease retry in 41.780200018s.",     "status": "RESOURCE_EXHAUSTED",     "details": [       {         "@type": "type.googleapis.com/google.rpc.Help",         "links": [           {             "description": "Learn more about Gemini API quotas",             "url": "https://ai.google.dev/gemini-api/docs/rate-limits"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.QuotaFailure",         "violations": [           {             "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",             "quotaId": "GenerateRequestsPerDayPerProjectPerModel-FreeTier",             "quotaDimensions": {               "location": "global",               "model": "gemini-2.5-flash"             },             "quotaValue": "20"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.RetryInfo",         "retryDelay": "41s"       }     ]   } }
2026-01-30 02:25:36	guest	https://cambridgepixel.com/ajax/ai-search/?q=Multi-sensor_tracking&user_email=	Gemini API Error: {   "error": {     "code": 429,     "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\nPlease retry in 23.412703874s.",     "status": "RESOURCE_EXHAUSTED",     "details": [       {         "@type": "type.googleapis.com/google.rpc.Help",         "links": [           {             "description": "Learn more about Gemini API quotas",             "url": "https://ai.google.dev/gemini-api/docs/rate-limits"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.QuotaFailure",         "violations": [           {             "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",             "quotaId": "GenerateRequestsPerDayPerProjectPerModel-FreeTier",             "quotaDimensions": {               "model": "gemini-2.5-flash",               "location": "global"             },             "quotaValue": "20"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.RetryInfo",         "retryDelay": "23s"       }     ]   } }
2026-01-30 03:02:26	guest	https://cambridgepixel.com/ajax/ai-search/?q=Air_traffic_control_radar&user_email=	Gemini API Error: {   "error": {     "code": 429,     "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\nPlease retry in 33.692613869s.",     "status": "RESOURCE_EXHAUSTED",     "details": [       {         "@type": "type.googleapis.com/google.rpc.Help",         "links": [           {             "description": "Learn more about Gemini API quotas",             "url": "https://ai.google.dev/gemini-api/docs/rate-limits"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.QuotaFailure",         "violations": [           {             "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",             "quotaId": "GenerateRequestsPerDayPerProjectPerModel-FreeTier",             "quotaDimensions": {               "location": "global",               "model": "gemini-2.5-flash"             },             "quotaValue": "20"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.RetryInfo",         "retryDelay": "33s"       }     ]   } }
2026-01-30 03:05:20	guest	https://cambridgepixel.com/ajax/ai-search/?q=Radar_tracking_system_development&user_email=	Gemini API Error: {   "error": {     "code": 429,     "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\nPlease retry in 39.539155079s.",     "status": "RESOURCE_EXHAUSTED",     "details": [       {         "@type": "type.googleapis.com/google.rpc.Help",         "links": [           {             "description": "Learn more about Gemini API quotas",             "url": "https://ai.google.dev/gemini-api/docs/rate-limits"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.QuotaFailure",         "violations": [           {             "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",             "quotaId": "GenerateRequestsPerDayPerProjectPerModel-FreeTier",             "quotaDimensions": {               "model": "gemini-2.5-flash",               "location": "global"             },             "quotaValue": "20"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.RetryInfo",         "retryDelay": "39s"       }     ]   } }
2026-01-30 03:06:08	guest	https://cambridgepixel.com/ajax/ai-search/?q=radar&user_email=	Gemini API Error: {   "error": {     "code": 429,     "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\nPlease retry in 51.850196725s.",     "status": "RESOURCE_EXHAUSTED",     "details": [       {         "@type": "type.googleapis.com/google.rpc.Help",         "links": [           {             "description": "Learn more about Gemini API quotas",             "url": "https://ai.google.dev/gemini-api/docs/rate-limits"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.QuotaFailure",         "violations": [           {             "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",             "quotaId": "GenerateRequestsPerDayPerProjectPerModel-FreeTier",             "quotaDimensions": {               "location": "global",               "model": "gemini-2.5-flash"             },             "quotaValue": "20"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.RetryInfo",         "retryDelay": "51s"       }     ]   } }
2026-01-30 03:09:38	guest	https://cambridgepixel.com/ajax/ai-search/?q=Radar_Coverage&user_email=	Gemini API Error: {   "error": {     "code": 429,     "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit. \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\nPlease retry in 21.900201751s.",     "status": "RESOURCE_EXHAUSTED",     "details": [       {         "@type": "type.googleapis.com/google.rpc.Help",         "links": [           {             "description": "Learn more about Gemini API quotas",             "url": "https://ai.google.dev/gemini-api/docs/rate-limits"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.QuotaFailure",         "violations": [           {             "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",             "quotaId": "GenerateRequestsPerDayPerProjectPerModel-FreeTier",             "quotaDimensions": {               "location": "global",               "model": "gemini-2.5-flash"             },             "quotaValue": "20"           }         ]       },       {         "@type": "type.googleapis.com/google.rpc.RetryInfo",         "retryDelay": "21s"       }     ]   } }
2026-01-30 11:10:29	cpadmin	https://cambridgepixel.com/customers/	Fatal Error:  Uncaught Error: Call to a member function authenticated() on null in /home/storm/sites/lnieg-nimsite-uk/public/site/assets/cache/FileCompiler/site/templates/customers.php:12 Stack trace: #0 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/TemplateFile.php(328): require() #1 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(413): ProcessWire\TemplateFile->___render() #2 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #3 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #4 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/PageRender.module(581): ProcessWire\Wire->__call() #5 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(416): ProcessWire\PageRender->___renderPage() #6 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #7 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #8 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(1094): ProcessWire\Wire->__call() #9 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #10 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/Process/ProcessPageView.module(193): ProcessWire\Wire->__call() #11 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/Process/ProcessPageView.module(114): ProcessWire\ProcessPageView->renderPage() #12 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(416): ProcessWire\ProcessPageView->___execute() #13 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #14 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #15 /home/storm/sites/lnieg-nimsite-uk/public/index.php(55): ProcessWire\Wire->__call() #16 {main}   thrown (line 12 of /home/storm/sites/lnieg-nimsite-uk/public/site/assets/cache/FileCompiler/site/templates/customers.php)
2026-01-30 15:06:01	cpadmin	https://cambridgepixel.com/customers/	Error:  Exception: Method PagesNames::encode does not exist or is not callable in this context (in /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php line 563)  #0 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(419): ProcessWire\Wire->___callUnknown() #1 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #2 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #3 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(487): ProcessWire\Wire->__call() #4 /home/storm/sites/lnieg-nimsite-uk/public/site/assets/cache/FileCompiler/site/templates/customers.php(260): ProcessWire\Wire->__call() #5 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/TemplateFile.php(328): require('...') #6 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(413): ProcessWire\TemplateFile->___render() #7 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #8 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #9 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/PageRender.module(581): ProcessWire\Wire->__call() #10 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(416): ProcessWire\PageRender->___renderPage() #11 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #12 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #13 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(1094): ProcessWire\Wire->__call() #14 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #15 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/Process/ProcessPageView.module(193): ProcessWire\Wire->__call() #16 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/Process/ProcessPageView.module(114): ProcessWire\ProcessPageView->renderPage() #17 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(416): ProcessWire\ProcessPageView->___execute() #18 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #19 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #20 /home/storm/sites/lnieg-nimsite-uk/public/index.php(55): ProcessWire\Wire->__call() #21 {main}
2026-02-12 09:50:28	alan	https://cambridgepixel.com/test-pdf-extraction/	Fatal Error:  Uncaught Error: Call to a member function get() on string in /home/storm/sites/lnieg-nimsite-uk/public/site/templates/test-pdf-extraction.php:14 Stack trace: #0 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/TemplateFile.php(328): require() #1 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(413): ProcessWire\TemplateFile->___render() #2 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #3 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #4 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/PageRender.module(581): ProcessWire\Wire->__call() #5 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(416): ProcessWire\PageRender->___renderPage() #6 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #7 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #8 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(1094): ProcessWire\Wire->__call() #9 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #10 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/Process/ProcessPageView.module(193): ProcessWire\Wire->__call() #11 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/Process/ProcessPageView.module(114): ProcessWire\ProcessPageView->renderPage() #12 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(416): ProcessWire\ProcessPageView->___execute() #13 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #14 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #15 /home/storm/sites/lnieg-nimsite-uk/public/index.php(55): ProcessWire\Wire->__call() #16 {main}   thrown (line 14 of /home/storm/sites/lnieg-nimsite-uk/public/site/templates/test-pdf-extraction.php)
2026-02-12 09:54:37	alan	https://cambridgepixel.com/test-pdf-extraction/	Fatal Error:  Uncaught Error: Call to a member function get() on string in /home/storm/sites/lnieg-nimsite-uk/public/site/templates/test-pdf-extraction.php:14 Stack trace: #0 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/TemplateFile.php(328): require() #1 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(413): ProcessWire\TemplateFile->___render() #2 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #3 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #4 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/PageRender.module(581): ProcessWire\Wire->__call() #5 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(416): ProcessWire\PageRender->___renderPage() #6 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #7 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #8 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(1094): ProcessWire\Wire->__call() #9 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #10 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/Process/ProcessPageView.module(193): ProcessWire\Wire->__call() #11 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/Process/ProcessPageView.module(114): ProcessWire\ProcessPageView->renderPage() #12 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(416): ProcessWire\ProcessPageView->___execute() #13 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #14 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #15 /home/storm/sites/lnieg-nimsite-uk/public/index.php(55): ProcessWire\Wire->__call() #16 {main}   thrown (line 14 of /home/storm/sites/lnieg-nimsite-uk/public/site/templates/test-pdf-extraction.php)
2026-02-12 09:54:39	alan	https://cambridgepixel.com/test-pdf-extraction/	Fatal Error:  Uncaught Error: Call to a member function get() on string in /home/storm/sites/lnieg-nimsite-uk/public/site/templates/test-pdf-extraction.php:14 Stack trace: #0 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/TemplateFile.php(328): require() #1 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(413): ProcessWire\TemplateFile->___render() #2 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #3 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #4 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/PageRender.module(581): ProcessWire\Wire->__call() #5 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(416): ProcessWire\PageRender->___renderPage() #6 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #7 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #8 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(1094): ProcessWire\Wire->__call() #9 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #10 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/Process/ProcessPageView.module(193): ProcessWire\Wire->__call() #11 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/Process/ProcessPageView.module(114): ProcessWire\ProcessPageView->renderPage() #12 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(416): ProcessWire\ProcessPageView->___execute() #13 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #14 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #15 /home/storm/sites/lnieg-nimsite-uk/public/index.php(55): ProcessWire\Wire->__call() #16 {main}   thrown (line 14 of /home/storm/sites/lnieg-nimsite-uk/public/site/templates/test-pdf-extraction.php)
2026-02-12 09:59:35	alan	https://cambridgepixel.com/test-pdf-extraction/	Fatal Error:  Uncaught Error: Class "ProcessWire\CURLFile" not found in /home/storm/sites/lnieg-nimsite-uk/public/site/ready.php:184 Stack trace: #0 /home/storm/sites/lnieg-nimsite-uk/public/site/templates/test-pdf-extraction.php(99): ProcessWire\extractPdfToJson() #1 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/TemplateFile.php(328): require('...') #2 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(413): ProcessWire\TemplateFile->___render() #3 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #4 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #5 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/PageRender.module(581): ProcessWire\Wire->__call() #6 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(416): ProcessWire\PageRender->___renderPage() #7 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #8 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #9 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(1094): ProcessWire\Wire->__call() #10 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #11 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/Process/ProcessPageView.module(193): ProcessWire\Wire->__call() #12 /home/storm/sites/lnieg-nimsite-uk/public/wire/modules/Process/ProcessPageView.module(114): ProcessWire\ProcessPageView->renderPage() #13 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(416): ProcessWire\ProcessPageView->___execute() #14 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod() #15 /home/storm/sites/lnieg-nimsite-uk/public/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks() #16 /home/storm/sites/lnieg-nimsite-uk/public/index.php(55): ProcessWire\Wire->__call() #17 {main}   thrown (line 184 of /home/storm/sites/lnieg-nimsite-uk/public/site/ready.php)
2026-02-13 13:53:13	guest	https://cambridgepixel.com/search/	Parse Error:  syntax error, unexpected token "}" (line 223 of /home/storm/sites/lnieg-nimsite-uk/public/site/assets/cache/FileCompiler/site/templates/search.php)
2026-02-13 13:53:16	guest	https://cambridgepixel.com/search/	Parse Error:  syntax error, unexpected token "}" (line 223 of /home/storm/sites/lnieg-nimsite-uk/public/site/assets/cache/FileCompiler/site/templates/search.php)
2026-02-13 13:53:19	guest	https://cambridgepixel.com/search/	Parse Error:  syntax error, unexpected token "}" (line 223 of /home/storm/sites/lnieg-nimsite-uk/public/site/assets/cache/FileCompiler/site/templates/search.php)
2026-02-13 13:57:13	alan	https://cambridgepixel.com/search/	Parse Error:  syntax error, unexpected token "}" (line 223 of /home/storm/sites/lnieg-nimsite-uk/public/site/assets/cache/FileCompiler/site/templates/search.php)

5. Test XML Creation

Testing if we can create/write to the XML file...

✓ Can create and write XML files

Test file created at: /home/storm/sites/lnieg-nimsite-uk/public/logs/test-write.xml

6. What's Broken?

Common Issues:

  1. Date format changed: If you changed the date format to 'H:i l, F j, Y', this breaks XSL sorting. Use 'Y-m-d H:i:s' instead.
  2. Missing duplicate XSL removal: Without removing old XSL declarations, you get 100+ duplicates.
  3. Directory permissions: Log directory must be writable (755 or 777).
  4. PHP syntax error: Check error log above for parse errors.
  5. File corruption: XML file might be corrupted from previous errors.

To Fix:

  1. Upload the fixed search.php
  2. If XML is corrupted, delete it and start fresh
  3. Ask a question to test
  4. Check this page again to see if issues are resolved

Refresh This Page