{"record":{"id":"430d3bd49ffada4b","repo":"gitroomhq/postiz-app","slug":"tumblr-blog-not-found","errorCode":null,"errorMessage":"Tumblr blog not found","messagePattern":"Tumblr blog not found","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"libraries/nestjs-libraries/src/integrations/social/tumblr.provider.ts","lineNumber":335,"sourceCode":"      id: blog.name,\n      name: blog.title || blog.name,\n      username: blog.url || `https://${blog.name}.tumblr.com/`,\n      followers: blog.followers || 0,\n      primary: !!blog.primary,\n      picture: {\n        data: {\n          url: this.getAvatarUrl(blog.name),\n        },\n      },\n    }));\n  }\n\n  async fetchPageInformation(accessToken: string, data: { id: string }) {\n    const blogs = await this.pages(accessToken);\n    const blog = blogs.find((item) => item.id === data.id);\n\n    if (!blog) {\n      throw new Error('Tumblr blog not found');\n    }\n\n    return {\n      id: blog.id,\n      name: blog.name,\n      access_token: accessToken,\n      picture: blog.picture.data.url,\n      username: blog.username,\n    };\n  }\n\n  async reConnect(\n    id: string,\n    requiredId: string,\n    accessToken: string\n  ): Promise<Omit<AuthTokenDetails, 'refreshToken' | 'expiresIn'>> {\n    const information = await this.fetchPageInformation(accessToken, {\n      id: requiredId,","sourceCodeStart":317,"sourceCodeEnd":353,"githubUrl":"https://github.com/gitroomhq/postiz-app/blob/0f1647f7491a217d43eb5ae7a480484bdf0aff3e/libraries/nestjs-libraries/src/integrations/social/tumblr.provider.ts#L317-L353","documentation":"fetchPageInformation lists the connected Tumblr blogs and cannot find one matching data.id, so it throws a plain Error 'Tumblr blog not found'. This runs when refreshing page information for a stored integration.","triggerScenarios":"The saved blog identifier in Postiz no longer appears in the blogs returned by Tumblr's /user/info + blog listing for the current token: blog deleted/renamed, token now belongs to a different account, or token scopes changed.","commonSituations":"User deleted or renamed their Tumblr blog; user re-authenticated a different Tumblr account; stale integration row after account switch.","solutions":["Verify the blog still exists at <blog>.tumblr.com and the same account owns it","Reconnect the Tumblr channel in Postiz so a fresh token and blog list are stored","If the blog was renamed, remove the old integration and add the new one","Check the Tumblr app's permissions if the token can no longer list blogs"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"const blogs = await provider.pages(accessToken);\nconst exists = blogs.some(b => b.id === data.id);\nif (!exists) { /* prompt reconnect instead of calling fetchPageInformation */ }","typeGuard":"const hasBlog = (blogs: {id:string}[], id: string) => blogs.some(b => b.id === id);","tryCatchPattern":"catch (e) { if (e instanceof Error && e.message === 'Tumblr blog not found') { /* mark integration stale, ask user to reconnect */ } throw e; }","preventionTips":["Verify page ids against a fresh pages() listing before using stored ids","Reconnect integrations after account or blog changes","Treat 'not found' page errors as stale-integration signals, not transient failures"],"tags":["tumblr","blog-not-found","page-information","integration-stale"],"backgroundTag":"social-page-not-found","analyzedSha":"0f1647f7491a217d43eb5ae7a480484bdf0aff3e","analyzedAt":"2026-08-27T12:09:55.020Z","schemaVersion":2},"datasetVersion":"2026-08-27T13:17:12.746Z"}