Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reddit API | Reorder Widgets Fails with Error #163

Open
Beach-Brews opened this issue Feb 10, 2025 · 0 comments
Open

Reddit API | Reorder Widgets Fails with Error #163

Beach-Brews opened this issue Feb 10, 2025 · 0 comments

Comments

@Beach-Brews
Copy link

Issue

Attempting to reorder widgets via the RedditAPIClient.reorderWidgets method is always resulting in an error.

Example Devvit Code

import {Devvit} from '@devvit/public-api';

Devvit.configure({
  redditAPI: true,
  redis: true
});

Devvit.addSchedulerJob({
  name: 'update_community_status',
  onRun: async (event, context) => {
    if (!context.subredditName) return;

    // CORE BUG
    // Get all existing widgets
    const subWidgets = await context.reddit.getWidgets(context.subredditName);

    // Try and simply reverse the order of the widgets
    // Next line always results in an error. See full stack below.
    await context.reddit.reorderWidgets(context.subredditName, subWidgets.map(w => w.id).reverse());
    // CORE BUG
  }
});

Devvit.addTrigger({
  event: 'AppInstall',
  onEvent: async (_, context) => {
    try {
      const jobId = await context.scheduler.runJob({
        cron: '* * * * *',
        name: 'update_community_status',
        data: {},
      });
      await context.redis.set('jobId', jobId);
    } catch (e) {
      console.log('Error: Failed to schedule update_community_status job:', e);
      throw e;
    }
  },
});

export default Devvit;

Error Log

2025-02-10T09:01:52.055Z Error: 2 UNKNOWN: HTTP request to URL: https://oauth.reddit.com/r/BeachBrewsBoil/api/widget_order/section?raw_json=1 failed with error: Patch "https://oauth.reddit.com/r/BeachBrewsBoil/api/widget_order/section?raw_json=1": httpbp.ClientError: http status 400 Bad Request: {"fields": ["section"], "explanation": "that option is not valid", "message": "Bad Request", "reason": "INVALID_OPTION"}
    at callErrorFromStatus (node_modules/@devvit/public-api/devvit/internals/blocks/useInterval.js:60:19)
    at Object.onReceiveStatus (node_modules/@devvit/public-api/apis/reddit/RedditAPIClient.js:253:4)
    at Object.onReceiveStatus (node_modules/@devvit/public-api/apis/reddit/RedditAPIClient.js:50:4)
    at Object.onReceiveStatus (node_modules/@devvit/public-api/apis/realtime/RealtimeClient.js:24:39)
    at <unknown> (node_modules/@devvit/public-api/apis/reddit/models/Comment.js:94:69)
    at process.processTicksAndRejections (node:internal/process/task_queues:85:11)
for call at
    at Client2.makeUnaryRequest (node_modules/@devvit/public-api/apis/reddit/RedditAPIClient.js:226:24)
    at /srv/index.cjs:132766:62
    at /srv/index.cjs:132825:5
    at new Promise (<anonymous>)
    at GrpcWrapper._GrpcWrapper_promiseWithGrpcCallback2 (/srv/index.cjs:132823:10)
    at GrpcWrapper.request (/srv/index.cjs:132765:110)
    at GenericPluginClient.OrderWidgets (/srv/index.cjs:118495:93)
    at wrapped.<computed> [as OrderWidgets] (node_modules/@devvit/public-api/devvit/Devvit.js:287:140)
    at _Widget.reorder (node_modules/@devvit/public-api/apis/reddit/models/Widget.js:110:21)
    at RedditAPIClient.reorderWidgets (node_modules/@devvit/public-api/apis/reddit/RedditAPIClient.js:1108:22) {
  cause: [Error: 2 UNKNOWN: HTTP request to URL: https://oauth.reddit.com/r/BeachBrewsBoil/api/widget_order/section?raw_json=1 failed with error: Patch "https://oauth.reddit.com/r/BeachBrewsBoil/api/widget_order/section?raw_json=1": httpbp.ClientError: http status 400 Bad Request: {"fields": ["section"], "explanation": "that option is not valid", "message": "Bad Request", "reason": "INVALID_OPTION"}] {
    code: 2,
    details: 'HTTP request to URL: https://oauth.reddit.com/r/BeachBrewsBoil/api/widget_order/section?raw_json=1 failed with error: Patch "https://oauth.reddit.com/r/BeachBrewsBoil/api/widget_order/section?raw_json=1": httpbp.ClientError: http status 400 Bad Request: {"fields": ["section"], "explanation": "that option is not valid", "message": "Bad Request", "reason": "INVALID_OPTION"}',
    metadata: _Metadata { internalRepr: Map(0) {}, options: {} }
  }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant