Hi,

我正在测试由子版块菜单项创建的Devvit Web交互式帖子。应用程序在自动生成的私人测试子版块上成功构建、上传和安装,但点击菜单项从未创建帖子。

环境

  • Devvit CLI: 0.14.1
  • u/devvit/web: 0.14.1
  • Node.js: 24.19.0
  • macOS x64
  • Hono 服务器
  • 应用程序: fugitif-piece17
  • 测试版本: v0.0.1.3

配置

{
  "post": {
    "dir": "dist/client",
    "entrypoints": {
      "default": {
        "entry": "index.html",
        "height": "tall"
      }
    }
  },
  "server": {
    "dir": "dist/server",
    "entry": "index.cjs"
  },
  "permissions": {
    "reddit": true
  },
  "menu": {
    "items": [
      {
        "label": "Créer — Pièce 17",
        "description": "Créer le mouve exécutable Pièce 17",
        "forUserType": "moderator",
        "location": "subreddit",
        "endpoint": "/internal/menu/post-create"
      }
    ]
  }
}

服务器端点

app.post('/internal/menu/post-create', async (c) => {
  const _input = await c.req.json<MenuItemRequest>();

  if (!context.subredditName) {
    return c.json<UiResponse>({
      showToast: 'Subreddit not found in Devvit context.'
    });
  }

  const post = await reddit.submitCustomPost({
    subredditName: context.subredditName,
    title: 'Pièce 17 — Synthèse des éléments versés au dossier',
    entry: 'default'
  });

  return c.json<UiResponse>({
    showToast: `Post created: ${post.id}`
  });
});

重现步骤

  1. 运行 npm run dev
  2. Devvit 报告 Updating... Success!Playtest ready
  3. 打开并刷新生成的私人测试子版块。
  4. 选择管理菜单项 Créer — Pièce 17
  5. 没有帖子或弹出窗口出现。
  6. 终端报告:

​

Failed to POST to Node.js server endpoint /internal/menu/post-create;
server responded with error: fetch failed

Fatal Unhandled Promise rejected:
TypeError: Cannot use 'in' operator to search for 'message' in
Failed to POST to Node.js server endpoint /internal/menu/post-create;
server responded with error: fetch failed

at serverErrorToStatus (/srv/index.cjs:18139:28)
at respond (/srv/index.cjs:20215:65)

已进行的检查

  • 将本地 Node.js 升级到 24.19.0。
  • 重新安装依赖项 npm ci
  • 确认构建和两次自动测试都通过。
  • 简化 Reddit 权限从 { "enable": true }true
  • 移除可选的 textFallback
  • 从不包含空格或特殊字符的文件系统路径重新测试。
  • 上传了一个新的测试版本,每次相关的更改后。

错误仍然相同。该调用似乎遵循当前的 submitCustomPost() 文档

这是当前平台问题影响 submitCustomPost() 在测试中,还是需要为新初始化的应用程序添加权限/配置步骤?