← WingspanCONTENT HISTORY

Update to Wingspan

Snapshot Sep 30, 2026 · 23:10 UTC · version 1.0.0

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "Diagnose Wingspan connection and permission problems. Use when a Wingspan tool returns an authentication or permission error, when tools report nothing, when an answer appears to come from the wrong company or account, or when someone asks whether ChatGPT is connected to Wingspan.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 356
    }
  ],
  "name": "troubleshooting",
  "skill_md_contents": "---\nname: troubleshooting\ndescription: Diagnose Wingspan connection and permission problems. Use when a Wingspan tool returns an authentication or permission error, when tools report nothing, when an answer appears to come from the wrong company or account, or when someone asks whether ChatGPT is connected to Wingspan.\n---\n\n# Troubleshooting the Wingspan connection\n\nThe Wingspan tools read one company's records, over a connection the user\nauthorized in their browser. When something looks wrong, the question is\nalmost always which account the tools are reading as, or whether the\nauthorization is still good.\n\n## Run `who_am_i` first\n\n`who_am_i` takes no arguments and is the only honest check that the connection\nworks, because it performs a real authenticated read. What it reports:\n\n- The signed-in person's email address, and no name, when the connection\n  identifies a person. An authorization granted through the browser identifies\n  the company account rather than the individual, and in that case the person is\n  reported as unavailable — that is expected, not a fault.\n- `actingAsAccountId` — always null from `who_am_i`, because it takes no\n  `accountId`; ignore it. The account the answers are about is `account`, which\n  the browser authorization names, or the entry in `accounts` matching the\n  signed-in person. Other tools read as a child account only when a call passes\n  `accountId`.\n- `accounts` — the accounts this connection can reach, with names and any\n  parent account. An empty list is legitimate, not a fault.\n\nReport what it says before theorising.\n\n## Not authorized, or authorization expired\n\nAn authentication failure means the connection needs re-authorizing. Open the\nconnector or MCP settings, select Wingspan, and complete login in the browser.\n\nTwo things worth knowing so you can describe this accurately:\n\n- Access is granted for a short window and then renewed automatically. This\n  plugin asks for the permission that makes silent renewal possible, so a\n  working connection normally stays working without anyone doing anything.\n- If the renewal itself fails — the authorization was revoked, or the browser\n  session is long gone — every tool starts failing at once. Re-authorizing\n  through `/mcp` is the fix, not retrying the tool.\n\nIf a tool reports that the token was rejected, the message carries a request id\nwhen Wingspan supplied one. Give that id to the user; it is the handle Wingspan\nsupport needs to find the failure.\n\n## The answers are for the wrong company\n\nTwo causes, and `who_am_i` distinguishes them.\n\n**The connection is bound to a different account than the user expected.**\n`account` names the account the authorization covers when the report carries\none; otherwise it is the entry in `accounts` matching the signed-in person.\n`accounts` shows what else is reachable. A person who works with more than one\nWingspan account has to authorize the one they mean.\n\n**The company is an organization with child accounts.** Nine of the ten\ntools take an optional `accountId` that acts as one child account instead of the\ndefault; `who_am_i` takes no arguments at all. Use `accountId` only when the user\nnames a specific child account, and take the id from `who_am_i`'s `accounts`\nlist. Do not guess an id, and do not sweep across children unasked.\n\n## The answers are empty\n\nBefore concluding there is no data:\n\n- `search_contractors` defaults to active contractors and excludes archived\n  ones. A name search that finds nothing reports how many archived contractors\n  do match; offer to look there.\n- `search_payables` excludes cancelled payments unless asked for them.\n- A contractor with no engagement assignment has no paperwork summary at all,\n  so the tabs that filter on paperwork will not return them.\n- These tools answer only for the company doing the paying. If the user wants\n  to know what someone owes *them*, these tools cannot answer it, and their own\n  Wingspan account is where to look.\n\nThe `finding-contractors` and `checking-payments` skills cover each of those in\nmore detail.\n\n## What the error messages mean\n\n| The tool says | What happened |\n| --- | --- |\n| Not found | No such record is visible to this account. A record belonging to a different account also reads as not found, on purpose. |\n| Not a well-formed id | The id is the wrong shape. Use the id a search result carried, not one copied from elsewhere. |\n| Invalid request | The arguments contradict each other. The message says which pair; fix it and call again. |\n| The token was rejected | The authorization is no longer accepted. Re-authorize through `/mcp`. |\n\n## When the tools are not there at all\n\nIf no Wingspan tools appear, the plugin may be installed without an active\nconnection. Check the connector or MCP settings for the Wingspan entry and its\nstatus. If the endpoint cannot be found, ask the user's Wingspan account team\nwhether the MCP integration is enabled for the account.\n\n## Finish these in the Wingspan app\n\n- Signing in, resetting a password, and anything to do with multi-factor\n  authentication.\n- Reviewing or revoking which applications have access to the account.\n- Creating, rotating or deleting an API key, or managing a service account.\n- Changing which accounts a person can reach, and their permissions.\n\nEvery one of those is protected by an extra identity challenge, which cannot be\ncompleted in a conversation. There is no workaround to look for.\n"
}

SHA-256 of public snapshot: 022dd387efa450033f44447564e7e0d37c571b17e89653f1f8100b94ef578f29