Se aprendo o aggiornando query di Excel/Power Query che puntano a SharePoint, OneDrive o Teams compare “[DataFormat.Error] We received a malformed web response”, qui trovi cause, soluzione rapida verificata e buone pratiche per evitare che ricapiti.
Che cos’è l’errore “malformed web response” in Power Query
Il messaggio completo che può apparire durante Aggiorna tutto o il refresh di una singola query è tipicamente simile a:
[DataFormat.Error] We received a malformed web response from … .xlsx
Capita spesso quando l’origine dati è un file ospitato su servizi Microsoft 365 (SharePoint Online, OneDrive for Business o documenti in Teams). In molti casi l’errore si ripete su tutte le query collegate a quei documenti dalla stessa postazione, mentre altri utenti con i medesimi file e credenziali non hanno problemi. Questa asimmetria è un indizio chiaro: la causa è locale (cache, token o rete sulla macchina dell’utente) e non nel file o nel servizio cloud.
Sintomi e segnali che aiutano a riconoscerlo
- L’errore si presenta in modo intermittente o improvviso dopo settimane di funzionamento regolare.
- Tutte le query che leggono dallo stesso tenant/URL SharePoint falliscono insieme.
- Un collega, con lo stesso percorso file e identiche autorizzazioni, riesce ad aggiornare senza errori.
- In Power Query Editor l’anteprima delle tabelle può non caricarsi o mostrare errori generici di formato.
- In ambienti con proxy/VPN si osservano errori più frequenti durante cambi di rete o scadenza delle sessioni.
La spiegazione tecnica in breve
Power Query, quando accede a risorse web protette, conserva token OAuth e cookie di sessione per evitare di chiedere continuamente le credenziali. Se questi artefatti scadono, vengono invalidati lato servizio o si corrompono nella cache locale, la risposta HTTP restituita (reindirizzamenti, pagine HTML d’errore, risposte parziali o non conformi) può essere interpretata come “malformed” dal motore di Power Query, che si aspetta un file Excel/CSV/JSON valido.
In sintesi: una credenziale memorizzata in stato incoerente può trasformare una normale richiesta GET
in una catena di reindirizzamenti, 401/403 o pagine HTML non previste. Il motore, tentandone il parsing come file dati, segnala un malformed web response.
Soluzione rapida verificata
Questa procedura, testata in scenari reali, ha riportato le query a funzionare correttamente:
- Cancella le autorizzazioni globali di Power Query
In Excel vai su Dati → Ottieni dati → Impostazioni origine dati → scheda Autorizzazioni globali. Seleziona le voci relative a SharePoint/OneDrive/Teams e clicca Cancella autorizzazioni. - Aggiorna le query e reimmetti le credenziali quando richiesto
Al successivo refresh Power Query chiederà di autenticarti: scegli l’opzione corretta (di norma Account dell’organizzazione) e completa l’accesso.
Dopo questi due passaggi, nella maggior parte dei casi le query ricominciano ad aggiornarsi senza errori.
Perché questa soluzione funziona
- Resetta i token: eliminando le autorizzazioni globali costringi Power Query a negoziare token OAuth nuovi e validi.
- Pulisce i cookie di sessione: eventuali cookie obsoleti o inconsistenti non vengono più riutilizzati nella richiesta.
- Allinea il contesto: se l’utente ha cambiato password, metodo di MFA o criteri di accesso condizionale, il nuovo login riallinea client e servizio.
Guida passo‑passo dettagliata
Excel su Windows
- Chiudi eventuali cartelle con query aperte.
- Apri una cartella qualsiasi, vai su Dati → Ottieni dati → Impostazioni origine dati.
- Seleziona Autorizzazioni globali.
- Evidenzia tutte le voci che iniziano con
https://<tenant>.sharepoint.com
ohttps://<tenant>-my.sharepoint.com
e premi Cancella autorizzazioni. - Conferma e chiudi la finestra.
- Riapri il file con le query → Dati → Aggiorna tutto.
- Quando richiesto, seleziona Account dell’organizzazione e autentìcati.
Excel su macOS
- Apri il file, poi Dati → Ottieni dati → Impostazioni origine dati.
- Rimuovi le credenziali per gli endpoint SharePoint/OneDrive.
- Aggiorna la query e completa l’accesso con l’account aziendale.
Nota: in alcune build le etichette dei menu possono variare leggermente; cerca sempre “Impostazioni origine dati” o “Data source settings”.
Ulteriori raccomandazioni utili
Le azioni seguenti non sempre sono necessarie, ma riducono le probabilità di ricadute e aiutano a diagnosticare l’ambiente.
Azione | Perché può aiutare |
---|---|
Svuotare la cache di Power Query (%LocalAppData%\Microsoft\Office\16.0\PowerQuery\Cache ) | Elimina file temporanei che possono contenere header o cookie obsoleti. |
Aggiornare Office all’ultima build | Le build recenti includono fix a parsing HTTP/JSON e migliorano la stabilità dell’autenticazione. |
Verificare impostazioni proxy o VPN | Un proxy che riscrive le intestazioni o ispeziona TLS può generare risposte “non conformi”. |
Testare la stessa connessione da un altro profilo Windows | Se il problema sparisce, il profilo corrente ha impostazioni o cache corrotte. |
Controllare limiti di throttling di SharePoint Online | Carichi elevati o refresh simultanei possono restituire risposte incomplete. |
Verificare l’orologio di sistema | Uno scarto significativo rompe OAuth (token considerati non validi). |
Disconnettersi e riconnettersi a Office (File → Account) | Rigenera la sessione di identità di Office che Power Query può riutilizzare. |
Controllare i livelli di privacy delle origini dati | Valori incoerenti forzano percorsi non ottimali; allinearli riduce comportamenti anomali. |
Diagnostica di rete e proxy
Se l’errore persiste, il problema può dipendere dal percorso di rete tra Excel e SharePoint:
- Ispezione TLS/SSL: dispositivi di sicurezza che decifrano e ricifrono il traffico possono introdurre differenze minime negli header, provocando parsing errato.
- Proxy con compressione/rewriting: alcune appliance riscrivono
Content-Type
o applicano ricompressioni; Power Query si aspetta un MIME coerente con il file richiesto. - Redirect non previsti: richieste a
.../Doc.aspx
o URL “di visualizzazione” possono generare HTML; preferisci URL di download diretto o connettori nativi (vedi più avanti). - Timeout: reti con latenza alta possono troncare la risposta. Vedi l’esempio M per impostare
Timeout
.
Buone pratiche sui connettori: evitare URL “fragili”
Selezionare il connettore giusto riduce in modo drastico la probabilità di risposte malformate. Due approcci consigliati:
Usare i connettori SharePoint nativi
Quando possibile, usa SharePoint.Contents o SharePoint.Files invece di accedere a un link di anteprima o con parametri UI. Esempio:
let
SiteUrl = "https://contoso.sharepoint.com/sites/Team",
Root = SharePoint.Contents(SiteUrl, [ApiVersion = 15]),
Library = Root{[Name = "Shared Documents"]}[Content],
FileBin = Library{[Name = "Report.xlsx"]}[Content],
Workbook = Excel.Workbook(FileBin, null, true)
in
Workbook
Usare Web.Contents con RelativePath
Se devi usare Web.Contents
, evita URL composti dinamicamente con parametri volatili. Preferisci RelativePath
e imposta un timeout esplicito:
let
Root = "https://contoso.sharepoint.com",
Path = "sites/Team/Shared Documents/Report.xlsx",
BinaryFile = Web.Contents(Root, [
RelativePath = Path,
Timeout = #duration(0, 0, 30, 0)
]),
Workbook = Excel.Workbook(BinaryFile, null, true)
in
Workbook
Questo pattern aiuta anche il “firewall” di Power Query a validare correttamente l’endpoint.
Pattern M per rendere la query più resiliente
Puoi intercettare risposte malformate e produrre un messaggio più chiaro (o un fallback):
let
SafeFetch = (url as text) =>
let
Response = try Web.Contents(url, [Timeout = #duration(0,0,30,0)])
in
if Response[HasError]
then error "Download non riuscito. Verifica credenziali o rete."
else Response[Value],
```
Source = SafeFetch("https://contoso.sharepoint.com/sites/Team/Shared Documents/Report.xlsx"),
TableOut = Excel.Workbook(Source, null, true)
```
in
TableOut
Questo non “ripara” l’autenticazione, ma aiuta ad attribuire la causa correttamente quando ricompare.
Controlli avanzati su credenziali e profilo utente
Se la pulizia delle autorizzazioni globali non basta:
- Profilo Windows alternativo: accedi con un nuovo profilo utente locale/AD. Se lì funziona, il problema è circoscritto al profilo originario.
- Gestione credenziali di Windows: valuta (con prudenza) la rimozione di voci Office/OAuth relative al tenant. Effettua sempre un punto di ripristino o un backup prima.
- Reinstallazione/repair di Microsoft Edge WebView2: il controllo di login usa WebView2; una cache corrotta può influire sulla schermata di accesso.
Impostazioni di privacy e prestazioni
La combinazione di origini “Private/Organizational/Public” influisce sul percorso di esecuzione. Evita di disattivare globalmente la privacy salvo test mirati: può aggirare problemi nell’immediato ma introdurre rischi di data leakage tra origini.
Come raccogliere dettagli diagnostici
- Apri Power Query Editor → File (o il menu principale) → Opzioni / Opzioni query.
- Attiva le opzioni di diagnostica o tracing (se disponibili nella tua build).
- Riproduci l’errore e poi esporta i log per analisi (ricerca di 401/403/302, dimensione della risposta, content‑type inatteso).
Script e percorsi utili per manutenzione
Se la policy aziendale lo consente, si può automatizzare la pulizia della cache di Power Query con PowerShell:
# Esegui PowerShell come amministratore solo se richiesto dalla tua policy
$pqCache = "$env:LOCALAPPDATA\Microsoft\Office\16.0\PowerQuery\Cache"
if (Test-Path $pqCache) {
Write-Host "Pulizia cache Power Query in $pqCache"
Remove-Item -Path (Join-Path $pqCache '*') -Recurse -Force -ErrorAction SilentlyContinue
} else {
Write-Host "Percorso cache non trovato: $pqCache"
}
Attenzione: questo script elimina file temporanei; non tocca i file delle cartelle SharePoint/OneDrive sincronizzate.
Domande frequenti
Perché il mio collega non vede l’errore?
Perché il problema è quasi sempre locale: token scaduti, cache o un proxy configurato diversamente sulla tua macchina.
È un problema del file .xlsx?
In genere no. Se l’anteprima in SharePoint o l’apertura diretta in Excel funzionano, il file è integro. Il problema è nel tragitto d’accesso via Power Query (autenticazione/HTTP).
Posso risolvere modificando la query M?
La query può essere resa più robusta (con RelativePath, timeout, connettori nativi), ma se il token è invalidato nessuna modifica M sostituisce un nuovo login.
Disattivare i livelli di privacy è una soluzione?
Solo come test temporaneo. Non è consigliato lasciarlo attivo in produzione.
Checklist rapida di risoluzione
- Cancella Autorizzazioni globali e rifai il login.
- Aggiorna Office alla build corrente.
- Svuota la cache di Power Query.
- Verifica orologio di sistema e fusi orari.
- Controlla proxy/VPN e policy di ispezione TLS.
- Prova da un altro profilo utente.
- Preferisci connettori SharePoint nativi o
RelativePath
.
Prevenzione a lungo termine
- Standardizza i connettori: documenta e riutilizza pattern M con
SharePoint.Contents
oWeb.Contents
+RelativePath
. - Evita URL di visualizzazione (
.../Doc.aspx
, parametri di anteprima). Usa percorsi di download o libreria. - Programma refresh sfalsati per ridurre il rischio di throttling.
- Monitora le build di Office e stabilisci una finestra regolare di aggiornamento.
- Documenta le dipendenze di rete (proxy, eccezioni, bypass per domini Microsoft 365).
Conclusione
Nel caso descritto, l’errore “[DataFormat.Error] We received a malformed web response” era generato da credenziali memorizzate in modo errato. La semplice procedura di pulizia delle autorizzazioni globali seguita da un nuovo accesso ha ripristinato da subito il funzionamento. Per diminuire ulteriormente la probabilità che si ripresenti, mantieni aggiornato Office, verifica periodicamente proxy/VPN, considera la pulizia della cache e adotta connettori SharePoint più stabili con i pattern M suggeriti.
Sintesi operativa
- Problema: refresh di query Excel/Power Query verso SharePoint/OneDrive/Teams che fallisce con “malformed web response”.
- Diagnosi: la causa è locale (token/cookie o rete), non nel file.
- Soluzione adottata: rimuovere autorizzazioni globali → rieseguire l’autenticazione; le query tornano operative.
- Consigli: cache pulita, Office aggiornato, controllo proxy/VPN, uso connettori nativi e
RelativePath
.