Skip to main content
Glama
debug-500-error.js15.8 kB
#!/usr/bin/env node /** * Debug HTTP 500 Error Test * Analyzes the actual failing composition to identify root cause */ import { createAPISaveDebugger } from '../src/tools/api-save-debugger.js'; import { createComposerFormatter } from '../src/tools/format-for-composer.js'; // Recreate the failing photosynthesis composition const failingCompositionData = { metadata: { topic: "Fotossíntese: A Fábrica de Energia da Vida", subject: "Ciências", gradeLevel: "8º ano", duration: 50, learningObjectives: [ "Compreender o processo da fotossíntese e sua importância para a vida", "Identificar as estruturas celulares envolvidas na fotossíntese", "Analisar os fatores que influenciam a eficiência fotossintética", "Relacionar a fotossíntese com questões ambientais contemporâneas" ], bnccAlignment: "EF08CI05, EF08CI06, EF08CI13" }, widgets: [ { type: "head-1", content: { category: "CIÊNCIAS - BIOLOGIA", author_name: "Professor(a) Virtual", author_office: "Especialista em Biologia Celular" } }, { type: "text-1", content: { text: `<h2>Introdução à Fotossíntese</h2> <p>A fotossíntese é um dos processos mais importantes da natureza, responsável por converter energia luminosa em energia química. Este processo fundamental não apenas sustenta a vida das plantas, mas também é essencial para toda a cadeia alimentar do nosso planeta.</p> <p>Durante a fotossíntese, as plantas capturam a luz solar e, através de uma série de reações químicas complexas, produzem glicose e oxigênio a partir de dióxido de carbono e água. Este processo ocorre principalmente nas folhas, especificamente em organelas chamadas cloroplastos.</p> <p>A importância da fotossíntese vai além da produção de alimento para as plantas. Ela é responsável pela produção de praticamente todo o oxigênio que respiramos e pela remoção de grandes quantidades de dióxido de carbono da atmosfera, ajudando a regular o clima do nosso planeta.</p>` } }, { type: "image-1", content: { image: "https://images.unsplash.com/photo-1441974231531-c6227db76b6e?w=800", caption: "Folhas verdes captando luz solar para o processo de fotossíntese" } }, { type: "text-1", content: { text: `<h2>Estruturas Envolvidas na Fotossíntese</h2> <p>A fotossíntese ocorre em estruturas celulares altamente especializadas. Vamos conhecer as principais:</p> <h3>Cloroplastos</h3> <p>Os cloroplastos são organelas exclusivas das células vegetais, responsáveis por capturar a energia luminosa. Dentro dos cloroplastos, encontramos:</p> <p><strong>Tilacoides:</strong> Estruturas membranosas onde ocorrem as reações que dependem da luz. Contêm a clorofila e outros pigmentos fotossintéticos.</p> <p><strong>Estroma:</strong> Fluido que envolve os tilacoides, onde ocorrem as reações que não dependem diretamente da luz.</p> <p><strong>Clorofila:</strong> Pigmento verde que absorve a energia luminosa. É responsável pela cor verde característica das plantas.</p>` } }, { type: "list-1", content: { items: [ "Clorofila a: Pigmento primário, absorve luz vermelha e azul", "Clorofila b: Pigmento acessório, complementa a absorção de luz", "Carotenoides: Pigmentos amarelos e alaranjados, proteção contra excesso de luz", "Tilacoides: Compartimentos membranosos organizados em pilhas (grana)", "Estroma: Matriz fluida rica em enzimas para síntese de carboidratos" ], list_type: "bulleted" } }, { type: "text-1", content: { text: `<h2>As Duas Fases da Fotossíntese</h2> <p>A fotossíntese pode ser dividida em duas fases principais, cada uma com suas características específicas:</p> <h3>Fase Clara (Reações Dependentes da Luz)</h3> <p>Esta fase ocorre nos tilacoides e depende diretamente da presença de luz. Durante esta etapa:</p> <ul> <li>A clorofila absorve energia luminosa</li> <li>Moléculas de água são quebradas (fotólise)</li> <li>Oxigênio é liberado como subproduto</li> <li>ATP e NADPH são produzidos para fornecer energia</li> </ul> <h3>Fase Escura (Ciclo de Calvin)</h3> <p>Esta fase ocorre no estroma e não depende diretamente da luz, mas utiliza os produtos da fase clara:</p> <ul> <li>CO₂ é fixado e convertido em compostos orgânicos</li> <li>ATP e NADPH são utilizados como fonte de energia</li> <li>Glicose é produzida como produto final</li> </ul>` } }, { type: "hotspots-1", content: { background_image: "https://images.unsplash.com/photo-1530587191325-3db32d826c18?w=800", markers: [ { x: "25%", y: "30%", title: "Tilacoides", content: "Estruturas membranosas onde ocorre a fase clara da fotossíntese" }, { x: "60%", y: "45%", title: "Estroma", content: "Região onde ocorre o Ciclo de Calvin (fase escura)" }, { x: "40%", y: "20%", title: "Clorofila", content: "Pigmento que absorve energia luminosa para iniciar o processo" } ] } }, { type: "text-1", content: { text: `<h2>Equação Geral da Fotossíntese</h2> <p>A fotossíntese pode ser resumida pela seguinte equação química:</p> <p><strong>6CO₂ + 6H₂O + energia luminosa → C₆H₁₂O₆ + 6O₂</strong></p> <p>Esta equação nos mostra que:</p> <ul> <li><strong>Reagentes:</strong> 6 moléculas de dióxido de carbono + 6 moléculas de água + energia luminosa</li> <li><strong>Produtos:</strong> 1 molécula de glicose + 6 moléculas de oxigênio</li> </ul> <p>É importante notar que a energia luminosa é convertida em energia química armazenada nas ligações da glicose, que posteriormente pode ser liberada através da respiração celular.</p>` } }, { type: "quiz-1", content: { questions: [ { question: "Qual é a principal função da clorofila na fotossíntese?", answers: ["Absorver energia luminosa", "Produzir oxigênio", "Quebrar moléculas de água", "Fixar dióxido de carbono"], correct_option: 0 }, { question: "Em qual estrutura celular ocorre a fotossíntese?", answers: ["Mitocôndrias", "Núcleo", "Cloroplastos", "Ribossomos"], correct_option: 2 }, { question: "Qual é o produto final da fase escura da fotossíntese?", answers: ["Oxigênio", "ATP", "Glicose", "NADPH"], correct_option: 2 } ], max_attempts: 2 } }, { type: "text-1", content: { text: `<h2>Fatores que Afetam a Fotossíntese</h2> <p>Diversos fatores ambientais podem influenciar a eficiência do processo fotossintético:</p> <h3>Intensidade Luminosa</h3> <p>A quantidade de luz disponível é fundamental. Muita luz pode causar danos, enquanto pouca luz limita o processo.</p> <h3>Concentração de CO₂</h3> <p>O dióxido de carbono é um reagente essencial. Ambientes com maior concentração de CO₂ podem aumentar a taxa fotossintética.</p> <h3>Temperatura</h3> <p>Afeta a velocidade das reações enzimáticas. Temperaturas muito altas ou baixas podem prejudicar o processo.</p> <h3>Disponibilidade de Água</h3> <p>A água é um reagente essencial e sua escassez pode limitar severamente a fotossíntese.</p> <p>Compreender esses fatores é crucial para agricultura e conservação ambiental, pois permite otimizar as condições para o crescimento das plantas.</p>` } }, { type: "text-1", content: { text: `<h2>Importância Ecológica e Ambiental</h2> <p>A fotossíntese desempenha um papel fundamental na manutenção da vida na Terra:</p> <h3>Produção de Oxigênio</h3> <p>Praticamente todo o oxigênio presente na atmosfera é produto da fotossíntese realizada por plantas, algas e cianobactérias.</p> <h3>Remoção de CO₂</h3> <p>As plantas absorvem grandes quantidades de dióxido de carbono da atmosfera, ajudando a regular o efeito estufa.</p> <h3>Base da Cadeia Alimentar</h3> <p>A glicose produzida pela fotossíntese é a base energética de praticamente todos os ecossistemas terrestres.</p> <p>Devido ao aquecimento global e às mudanças climáticas, a fotossíntese torna-se ainda mais relevante como processo natural de sequestro de carbono.</p>` } }, { type: "flashcards-1", content: { flashcards_items: [ { question: "Cloroplasto", answer: "Organela onde ocorre a fotossíntese, contém clorofila e outros pigmentos" }, { question: "Tilacoide", answer: "Estrutura membranosa onde ocorrem as reações dependentes da luz" }, { question: "Estroma", answer: "Fluido do cloroplasto onde ocorre o Ciclo de Calvin" }, { question: "Clorofila", answer: "Pigmento verde que absorve energia luminosa" }, { question: "Fotólise", answer: "Quebra de moléculas de água usando energia luminosa" } ] } }, { type: "text-1", content: { text: `<h2>Curiosidades sobre a Fotossíntese</h2> <p>Alguns fatos interessantes sobre este processo fundamental:</p> <ul> <li><strong>Eficiência:</strong> A fotossíntese converte apenas cerca de 1-2% da energia solar em energia química</li> <li><strong>Origem:</strong> A fotossíntese evoluiu há aproximadamente 3,5 bilhões de anos</li> <li><strong>Produção:</strong> As plantas produzem cerca de 170 bilhões de toneladas de biomassa anualmente</li> <li><strong>Oxigênio:</strong> Uma árvore média produz oxigênio suficiente para duas pessoas por dia</li> <li><strong>Cores:</strong> A clorofila reflete luz verde, por isso vemos as plantas verdes</li> </ul> <p>A fotossíntese também inspirou tecnologias como painéis solares e pesquisas sobre fotossíntese artificial para produção de energia limpa.</p>` } } ] }; async function debugHTTP500Error() { console.error('🔍 Debugging HTTP 500 Error - Targeted Analysis\n'); // Step 1: Create the actual failing composition console.error('📋 Step 1: Recreating the failing composition'); const formatter = createComposerFormatter(); const formatResult = await formatter.formatForComposer(failingCompositionData); if (!formatResult.success) { console.error('❌ Failed to format composition:', formatResult.error); return; } const composerJSON = formatResult.data.composerJSON; // Step 2: Apply comprehensive debugging console.error('📋 Step 2: Applying comprehensive debugging analysis'); const apiDebugger = createAPISaveDebugger(); // Simulate the original error const originalError = { status: 500, statusText: 'Internal Server Error', responseText: '<!DOCTYPE html><html><head><title>Error</title></head><body><h1>Internal Server Error</h1><p>The server encountered an internal error and was unable to complete your request.</p></body></html>' }; const debugAnalysis = await apiDebugger.debugAPISaveFailure(composerJSON, null, originalError); // Step 3: Report findings console.error('📋 Step 3: Debug Analysis Results\n'); console.error('=== JSON STRUCTURE CHECK ==='); console.error(`Status: ${debugAnalysis.checks.jsonStructure.passed ? '✅ PASSED' : '❌ FAILED'}`); console.error(`Size: ${debugAnalysis.checks.jsonStructure.details.serializationSize} bytes`); console.error(`Widgets: ${debugAnalysis.checks.jsonStructure.details.widgetCount}`); if (debugAnalysis.checks.jsonStructure.issues.length > 0) { console.error('Issues:', debugAnalysis.checks.jsonStructure.issues); } console.error('\n=== HEADER COMPLETENESS CHECK ==='); console.error(`Status: ${debugAnalysis.checks.headerCompleteness.passed ? '✅ PASSED' : '❌ FAILED'}`); console.error(`Has metadata: ${debugAnalysis.checks.headerCompleteness.details.metadataPresent}`); console.error(`Has header widget: ${debugAnalysis.checks.headerCompleteness.details.hasHeaderWidget}`); if (debugAnalysis.checks.headerCompleteness.issues.length > 0) { console.error('Issues:', debugAnalysis.checks.headerCompleteness.issues); } console.error('\n=== CONTENT ENCODING CHECK ==='); console.error(`Status: ${debugAnalysis.checks.contentEncoding.passed ? '✅ PASSED' : '❌ FAILED'}`); console.error(`Total size: ${debugAnalysis.checks.contentEncoding.details.totalSize} bytes`); console.error(`Encoding: ${debugAnalysis.checks.contentEncoding.details.encoding}`); if (debugAnalysis.checks.contentEncoding.issues.length > 0) { console.error('Issues:', debugAnalysis.checks.contentEncoding.issues); } console.error('\n=== SIZE vs CONTENT ANALYSIS ==='); console.error(`Total size: ${debugAnalysis.checks.sizeAnalysis.details.totalSize} bytes (${debugAnalysis.checks.sizeAnalysis.details.sizeKB} KB)`); console.error(`Widget count: ${debugAnalysis.checks.sizeAnalysis.details.widgetCount}`); console.error(`Average widget size: ${debugAnalysis.checks.sizeAnalysis.details.averageWidgetSize} bytes`); console.error('\nLargest widgets:'); debugAnalysis.checks.sizeAnalysis.details.largestWidgets.forEach(widget => { console.error(` - Widget ${widget.index} (${widget.type}): ${widget.size} bytes`); }); if (debugAnalysis.checks.sizeAnalysis.issues.length > 0) { console.error('Issues:', debugAnalysis.checks.sizeAnalysis.issues); } console.error('\n=== API RESPONSE ANALYSIS ==='); console.error(`HTTP Status: ${debugAnalysis.checks.apiResponse.details.httpStatus}`); console.error(`Response Type: ${debugAnalysis.checks.apiResponse.details.responseText?.includes('<!DOCTYPE html>') ? 'HTML Error Page' : 'JSON'}`); if (debugAnalysis.checks.apiResponse.issues.length > 0) { console.error('Issues:', debugAnalysis.checks.apiResponse.issues); } console.error('\n=== RECOMMENDATIONS ==='); if (debugAnalysis.recommendations.length > 0) { debugAnalysis.recommendations.forEach(rec => { console.error(`🎯 ${rec.priority} - ${rec.category}`); console.error(` Action: ${rec.action}`); if (rec.details.length > 0) { console.error(` Details: ${rec.details.join(', ')}`); } }); } else { console.error('✅ No specific issues identified - likely a server-side problem'); } console.error('\n=== CONCLUSION ==='); console.error('Based on the analysis:'); console.error('• HTTP 500 suggests server processing error, not client request issues'); console.error('• Composition structure appears valid'); console.error('• Size is significant but not necessarily problematic'); console.error('• Focus should be on server-side issues or specific content that causes processing failures'); console.error('\n🔍 Debugging complete - check recommendations above'); } debugHTTP500Error().catch(console.error);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rkm097git/euconquisto-composer-mcp-poc'

If you have feedback or need assistance with the MCP directory API, please join our Discord server