# 🔧 Correção: Erro 500 após Merge dev → main

## ❌ Problema

Após fazer merge entre a branch `dev` e `main`, ocorreu erro 500:

```
TypeError: App\Services\UpdateService::executeUpdate(): Return value must be of type App\Models\SystemUpdate, bool returned
```

### Causa

Durante o merge, o método `executeUpdate()` em `UpdateService.php` foi modificado para retornar `false` em caso de erro (linha 1029), mas o método está declarado para retornar `SystemUpdate`.

### Soluções Aplicadas

1. ✅ **Corrigido return false → return $update** na linha 1029 do `UpdateService.php`
2. ⚠️ **Atualizar composer.lock** - O lock file está desatualizado após o merge

## ✅ Correção Aplicada no Código

O código foi corrigido automaticamente. Se você não fez pull ainda, o arquivo `backend/app/Services/UpdateService.php` já foi corrigido.

## 🔍 Verificar se o Erro Ainda Existe

Pelos logs que você mostrou, não há nenhum erro 500 recente. Os logs mostram apenas processos normais funcionando.

**Se você ainda está vendo erro 500 no navegador:**

1. **Limpe o cache do navegador** (Ctrl+Shift+R ou Cmd+Shift+R)
2. **Tente em modo anônimo/privado** para descartar cache
3. **Verifique se o erro é no frontend ou backend** - veja qual URL está dando erro 500

Execute o script de verificação:
```bash
cd /var/www/gestorstream
sudo bash verificar-erro-500.sh
```

## 🔧 Passos para Aplicar no Servidor

### 1. Verificar se o Código Foi Atualizado

```bash
cd /var/www/gestorstream/backend

# Verificar se ainda tem return false
grep -n "return false" app/Services/UpdateService.php

# Se mostrar linha 1029, fazer pull:
cd /var/www/gestorstream
git pull
```

### 2. Atualizar Composer Lock

O `composer.lock` está desatualizado e precisa ser atualizado:

```bash
cd /var/www/gestorstream/backend

# Atualizar composer.lock com as dependências do composer.json
export COMPOSER_ALLOW_SUPERUSER=1
composer update --no-dev --optimize-autoloader --no-interaction

# Se der erro, tentar instalar as dependências faltantes
composer install --no-dev --optimize-autoloader --no-interaction
```

### 2. Verificar se o Código Está Atualizado

```bash
cd /var/www/gestorstream/backend

# Verificar se o return false foi corrigido
grep -n "return false" app/Services/UpdateService.php

# Deve mostrar apenas comentários ou não mostrar nada
# Se mostrar linha 1029, fazer pull do repositório
```

### 3. Se o Código Não Estiver Atualizado

Se o código no servidor ainda tiver `return false`, você pode corrigir manualmente:

```bash
cd /var/www/gestorstream/backend
nano app/Services/UpdateService.php
```

Procure pela linha 1029 (aproximadamente) e mude:
```php
return false;
```

Para:
```php
return $update; // Retornar o objeto SystemUpdate, não false
```

### 4. Limpar Cache do Laravel

```bash
cd /var/www/gestorstream/backend

# Limpar todos os caches
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear

# Recriar caches de produção
php artisan config:cache
php artisan route:cache
php artisan view:cache
```

### 5. Verificar Permissões

```bash
cd /var/www/gestorstream

# Ajustar permissões
sudo chown -R www-data:www-data backend/storage backend/bootstrap/cache
sudo chmod -R 775 backend/storage backend/bootstrap/cache
```

### 6. Reiniciar Serviços

```bash
# Reiniciar backend Laravel
sudo systemctl restart gestorstream-backend

# Verificar status
sudo systemctl status gestorstream-backend
```

### 7. Verificar Logs

```bash
# Ver últimos erros
tail -50 /var/www/gestorstream/backend/storage/logs/laravel.log

# Ver erros do backend service
sudo journalctl -u gestorstream-backend -n 50 --no-pager
```

## 🔍 Verificação Final

Após aplicar as correções:

1. **Verificar se o erro 500 foi resolvido:**
   - Acesse a aplicação no navegador
   - Verifique se carrega normalmente

2. **Testar atualização automática:**
   - Crie uma nova release no Gitea
   - Verifique se o webhook processa corretamente
   - Verifique os logs para confirmar que não há mais erro de tipo

3. **Verificar dependências do Composer:**
```bash
cd /var/www/gestorstream/backend
composer show | grep aws
# Deve mostrar: aws/aws-sdk-php
```

## 📝 Notas Importantes

- ✅ O código já foi corrigido no repositório
- ⚠️ Você precisa fazer pull para obter a correção OU aplicar manualmente
- ⚠️ O `composer.lock` precisa ser atualizado no servidor
- ✅ Após atualizar o composer.lock, todas as dependências estarão sincronizadas

## 🆘 Se Ainda Houver Problemas

Se após aplicar todas as correções ainda houver erro 500:

1. Verificar logs detalhados:
```bash
tail -100 /var/www/gestorstream/backend/storage/logs/laravel.log | grep -A 20 "ERROR"
```

2. Verificar se todas as dependências foram instaladas:
```bash
cd /var/www/gestorstream/backend
composer validate
composer install --no-dev --optimize-autoloader -vvv
```

3. Verificar se o código está correto:
```bash
cd /var/www/gestorstream/backend
php -l app/Services/UpdateService.php
```
