Nested [details] causing 500 Internal Server Error


(Lilly) #1

Hi team,

A user of our forum reached out to us about being unable to edit their post. I’ve successfully reproduced the issue they’re having, here are the details:

They created a topic and are now unable to edit it. The topic creation went fine, but editing it causes a 500 internal server error.

I have narrowed it down to these nested [details]:

[details="Procedures & Protocols"]

In our Procedures & Protocols, many of our standard procedures and basic protocols are explained. These regard to all our ranks, some more to the Low Ranks, others more to Medium and High Ranks.

[details="Ranks"]
In NS, we have a wide variety of ranks. Whenever you join the group, you'll automatically be a 'Customer' (_C_); someone who has the rights to see the group wall and group shout. Customers may also ride our trains and use our facilities once they purchase an OV-Chipkaart.
The following rank 'Suspended' (_S_) is a rank for punished people, people can't be suspended permanently but every suspended employee will get a term determined on the things that they did. If you are suspended, you must remain in the group at that rank until your suspension has ended. Leaving the group and rejoining to get around your suspension will result in further consequences.

**LR**

Our Low Rank (_LR_) department consists of:
* Train Driver (_TD_): Drives trains. Simple.
* Conductor (_CD_): Trains can be dispatched by on-board conductors. The conductor checks tickets and closes the doors at every stop. You are only allowed to be someone's conductor if the driver agrees. Please see the **Conductor’s Guide*** section for more details. This rank is obtained by attending and passing a training. You must be a current Train Driver to attend this training.
* Customer Service Representative (_CSR_): The CSRs are the ones who take care of our customers' questions and who represent the group in a good way. We'll have customer service stands at the big stations. Our CSRs form our Customer Service. This rank is obtained by attending and passing a training. You must be a current Conductor to attend this training.

Both conductors and Customer Service Representative get Railpockets, a tool used to check our customers’ tickets.

**MR**

Then there's our Medium Rank (_MR_) department:
* Representative (_R_): Similar to the CSR rank, but a Representative most likely represents the group way more than helping our customers with their daily problems.
* Staff Coordinator (_SC_): Coordinates our low ranks and helps the Management Team if needed.
* Operations Coordinator (_OC_): Assists with the operations of our line and all the things happening on it. They will also help the management team if needed.

All medium rank employees possess the mod admin commands pack. Please see the **Medium Ranking System** section for details on becoming a MR.

**HR**

And last but not least we have our High Rank (_HR_) department.
Each rank also has a different area of expertise included with the name of the rank. This indicates whether it is under the management of our Directors of NS Reizigers or Directors of Operations.

_Managers_

The following ranks are our “Managers”. They work for one of the two departments (Operations or NS Reizigers). They are tasked with a couple of smaller things relating to the entire department:
* Manager of Events (Operations): Organises and hosts NS events. You schedule the events, come up with great ideas for games (please on time), matches and other great things. It’s your job to work the events out after they were approved by the MT. Planning events can be done with the help of your Director of Operations or other MoEs.
* Manager of Marketing (Operations): Comes up with great marketing strategies, such as ads and discounts. Marketing doesn’t just mean money; you can also suggest things which will have our customers like our game even better. 
* Manager of Security (Operations): Manages the Security Team. Suggests ways of taking care of conflicts on stations and in trains.
* Manager of Conductors (Operations): Supervises the conductors on and off-board trains. Establishes teamwork between conductors and train drivers (and other ranks). Also hosts conductor trainings.
* Manager of Customer Relations (Operations): Manages the Customer Service sector. This means you supervise Customer Service Representatives. Thanks to your team, our customers’ questions will be answered as good as possible! These managers can host Customer Service Representative trainings.
* Manager of Rail Management (NS Reizigers): Manages the Rail Management sector. Line Controllers will be your area when the Line Control System is done. Line Controller will be an invite-only rank and will have a system in which you can manually change light signals. You SUPERVISE these operations; your Line Controllers will take care of that just-explained job.
* Manager of Rolling Stock (NS Reizigers): Manages rolling stock, and like all other manager ranks comes up with great ideas for our rolling stock. Also manages train drivers and conductors at work (on trains).
* Manager of Stations (NS Reizigers): Manages stuff relevant to our stations, when we released content for the new Low Rank “Janitor” this manager will take care of them. You can also come up with ideas on how to improve our stations.

_Directors_

And last but not least, we have the managers of the managers: our “Directors”!
* The Directors of Operations take care of all staff and operations related business. They supervise the Managers of Customer Relations (Customer Service), Managers of Conductors, Managers of Security, Managers of Marketing (and the Managers of Events).
* The Directors of NS Reizigers supervise the NS Reizigers branch. This branch contains everything that’s relevant to our customers having a nice train ride on our nice line. Manager ranks that belong to this branch are the: Manager of Stations, Managers of Rail Management and Manager of Rolling Stock.

Directors supervise the managers working for them, but they also are allowed to help their managers by hosting trainings and doing other helpful stuff.

All high rank employees possess the admin commands pack.
There's a quota set up for the amount of trainings. For more info about trainings please read the “Trainings” section below.

**Miscellaneous ranks**

* Alt. Accounts: Happywalker's alternative accounts.
* Co-Founder: MrTropics, helped Happywalker setting up the group.
* President-Director: Leader of the group, Happywalker.
[/details]

[details="Trainings"]
There are 2 different types of trainings:
* Conductor Training (_CD_)
* Customer Service Training (_CSR_) 
All HRs are allowed to host both types of trainings, but we prefer to have our MoC host CD Trainings and our MoCR CSR Trainings.
For more specific info and the questions for these types of trainings, please consult the “Training Protocols”, a document which can be requested at any Director or the President-Director. This document is only available to HRs.

**Training Order**

Every trainings' order must be Demo-Theory-Practical.
In the demo section, you have to let your attendees see what the rank does and how the systems work, for example a conductor training: let the attendees see how the door system works.
A training's host is in control of the training. Other HRs and MRs attending may help, but only if the host agrees. Trainings may be hosted in Dutch, but please announce this clearly in your shout and at the beginning of your training. People are also allowed to ask for private training sessions, but it's up to the host to do it or not.

**Using the Group Shout**

For the trainings' shouts, we use a little template which is handy to use and easy for our employees to understand:
"[TRAINING] Conductor training on 4 July at 8 PM CEST at the main line."
The template explained:
"[THING] 'TYPE OF TRAINING' training on 'DAY+TIME(+TIMEZONE)' at 'PLACE'."
If there are two trainings approaching, just combine them into one shout containing a template like above. Whenever you're going to host a training, please shout it in the group shout some hours or days in advance. Shouting it 15 minutes before the actual training starts is not allowed and is just too late.

**Quota for the Trainings**

Every manager is expected to host at least two trainings every two weeks. Directors are expected to only host one training every two weeks, more is of course allowed. 
If you have a good reason to not meet these requirements (temporarily or permanently), please contact Happywalker and inform him with a clear reason.
If you didn't meet the quota, and there's no reason or your reason is a sophism, brace yourself to be demoted.

ALL (normal and private) trainings should be logged in the “Training Log” Spreadsheets . If you aren't provided with the these spreadsheets and are permitted to have it, request it at any director.
[/details]

[details="Products"]
_GamePasses_

OV-Chipkaart:
Your ticket to get through the gates at each station. 
After buying your OV-Chipkaart, it gives you the option to add your character’s data. About the data:
Please DO NOT provide the game with your personal credentials. Roblox does not allow us to have these details. Whenever you buy the OV-chipkaart and join the game, a GUI will show up asking for your character's date of birth and gender; "your character's" means not your personal date of birth and gender. If you don't want to make up this stuff, you can always close the GUI or click cancel (so the GUI will never show up anymore).

Teleport Pass:
This allows you to Teleport to all stations using the Map GUI. 
Click on a Station name in the Map GUI and you'll teleport there! You must purchase this pass regardless of your rank - it does not come with any ranks!

Train Tester:
YOU MUST BE A TRAIN DRIVER OR HIGHER TO USE THIS GAMEPASS!  
Allows you to spawn (and test) the newest trains which aren’t public yet. 

Train Painter:
Includes a painting tool to paint our trains. 
Please paint using NICE colors, don’t use lots of phosphorescent colors. We don't want ugly trains at our line. Whenever a train was spotted disobeying these rules, the owner will be warned. Don't paint trains which aren't yours.

Mod Commands:
All players who have purchased this GamePass as well as ALL Medium Rank employees should read the **Mod Policies** section, which includes our rules of the admin program.

This GamePass gives you all Mod commands. You are expected to have knowledge of the rules which can be found in **Mod Policies**: If you abuse your admin rights, brace yourself to lose it. When you buy it, it may not work yet: if so, wait for a new server.

_Developer Products_

Train Driver Uniform 12h:
Rents the Train Driver Uniform for the following 12 hours.

Conductor+ Uniform 12h:
Rents the Conductor+ Uniform for the following 12 hours.

Day Ticket:
Gets you a ticket which is valid for the following 24 hours (automatically gives you second class, you can upgrade it to first class).

Day Ticket First Class:
Gets you a first class ticket which is valid for the following 24 hours.

First Class:
A product for the OV-chipkaart and the day tickets which gives you the privileges to ride in the first class areas of the trains (the red seats).
Changelog

For the most recent changelog (if available), please check the line's description or consult the Trello development board. New ideas and other stuff about currently ongoing updates are all saved in a Trello board. This board is now open to all, to find it, please contact a HR.
[/details]

[details="Group Wall"]
Here are some cases when HRs are allowed to delete posts on the group wall:
* If the post can be considered as spam or annoying
* If it's a desperate message from someone who's about to leave the group
* It's a hashtagger
[/details]

[details="Suspension System"]
Only HRs can access the “Malicious Spreadsheets”, if you aren't provided with it yet, request it at any director.
Look in there for a template to use for a new suspension you want to add, if you can provide the suspension with some proof (preferably links to screenshots) please add it.

Example Suspensions:
* Admin Abuse (as quoted in the **Mod Policies** section): 3 days
* Intentionally derailing trains: 1 day
* Swearing heavily: 2 days
* Being too rude: 2 days
* Failure to abide by the Train Driver’s Guide: 1 day
* Not following a HRs orders/instructions: 2 days
* Continuing to paint unrealistically after being told not to: 2 days
* Spamming in-game: You will be muted first. If you continue, then you will be suspended for 1 day.
* Spamming on-site (for example applications):  1 day

When to extend a suspension:
* Begging to get unsuspended: +1 day
* Continuing to break rules: +1 day

A suspension can get up to seven days. Please remember to warn first, and don't suspend someone if the case isn't bad enough.
[/details]

[details="Conductor System"]
Handy stuff for our conductors.
See the **Conductor’s Guide** section for more details.
[/details]

[details="DriverGUI"]
To learn how our DriverGUI works, see the **Train Driver's Guide** section for more details.
[/details]

[details="Disclaimer"]
NS Roblox is not affiliated with the real 'Nederlandse Spoorwegen N.V.' in any way, except that we are allowed to use their name and awesome logo for our group.
[/details]
[/details]

Assistance would be appreciated, as I cannot seem to replicate this with nested [details] alone. Something inside must be problematic.


(Michael Brown) #2

Hi Lilly,

We’ll look at this now. Can you link us to the troublesome post?


(Lilly) #3

(Michael Brown) #5

Thanks,

FYI I was able to reproduce the problem on https://try.discourse.org - creating a new topic or PM with your text from above results in a 500 server error.


(Régis Hanol) #8

Hi Lilly,

I’ve pushed a fix to your instance. Can you try editing the topic with nested [details]?

Régis


(Lilly) #9

Thanks a ton, your fix appears to have worked. :slight_smile:


(Jeff Atwood) #10