createModDiscussionConversation masks the 10000-char body limit as "struct field 'service' doesn't exist"

Abierto
#268 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
58/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
typescript
Área
api, backend

Línea de trabajo

Start at the GenericPluginClient.CreateModmailConversation entry point and reproduce the oversized body case, comparing its response handling with reddit.modMail.reply and GenericPluginClient.CreateConversationMessage. Done means a 10001-character body surfaces the clear validation error, while a 10000-character body still succeeds.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Summary

reddit.modMail.createModDiscussionConversation(...) with a bodyMarkdown over the modmail length limit fails with an unhelpful gRPC response-parse error instead of reporting the limit. reddit.modMail.reply(...) with the same oversized body reports it clearly; the create path masks the real error.

Environment
  • @devvit/web 0.13.4 (Devvit Web / server)
Reproduction
import { context, reddit } from '@devvit/web/server';

// one character over the limit
const body = 'A'.repeat(10001);

// (1) create: cryptic parse error
await reddit.modMail.createModDiscussionConversation({
  subject: 'x',
  bodyMarkdown: body,
  subredditId: context.subredditId,
});

// (2) reply (same body): clear error
await reddit.modMail.reply({ conversationId, body, isInternal: true });
Actual

(1) create throws:

2 UNKNOWN: grpc invocation failed with status 2; failed to parse response body: : : struct field for "service" doesn't exist in any of 1 places to unmarshal
    at GenericPluginClient.CreateModmailConversation

(2) reply throws (same body):

2 UNKNOWN: grpc invocation failed with status 2; Bad request: This field must be under 10000 characters
Error in field: body
    at GenericPluginClient.CreateConversationMessage
Expected

The create path should surface the same clear "This field must be under 10000 characters" error as the reply path (perhaps tolerate unknown fields in the response). The create endpoint appears to deserialize Reddit's 400 into a proto lacking a service field, turning a clear validation error into an opaque parse failure.

Notes
  • A body of exactly 10000 chars succeeds (both create and reply); 10001 fails. This means the "must be under 10000 characters" wording is off by one (the real max is 10000 inclusive).
  • Confirmed with bodies of 11000 and exactly 10001 characters.
  • Searched open/closed issues and PRs for the error string and createModDiscussionConversation; no existing report.
Lenguaje dominante
TypeScript
Estrellas
210
Forks
88
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de reddit/devvit

Todos los issues de reddit/devvit

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.