Dropbox status: access issues and outage reports
No problems detected
If you are having issues, please submit a report below.
Dropbox is a file hosting service operated by American company Dropbox, Inc., headquartered in San Francisco, California, that offers cloud storage, file synchronization, personal cloud, and client software.
Problems in the last 24 hours
The graph below depicts the number of Dropbox reports received over the last 24 hours by time of day. When the number of reports exceeds the baseline, represented by the red line, an outage is determined.
At the moment, we haven't detected any problems at Dropbox. Are you experiencing issues or an outage? Leave a message in the comments section!
Most Reported Problems
The following are the most recent problems reported by Dropbox users through our website.
- Errors (50%)
- Sign in (38%)
- Website Down (13%)
Live Outage Map
The most recent Dropbox outage reports came from the following cities:
| City | Problem Type | Report Time |
|---|---|---|
|
|
Sign in | 13 days ago |
|
|
Errors | 1 month ago |
|
|
Website Down | 1 month ago |
|
|
Errors | 1 month ago |
|
|
Sign in | 1 month ago |
|
|
Errors | 2 months ago |
Community Discussion
Tips? Frustrations? Share them here. Useful comments include a description of the problem, city and postal code.
Beware of "support numbers" or "recovery" accounts that might be posted below. Make sure to report and downvote those comments. Avoid posting your personal information.
Dropbox Issues Reports
Latest outage, problems and issue reports in social media:
-
Abhishek Singh (@0xlelouch_) reportedInterviewer: design Dropbox file sync. I paused and asked what they meant by sync. Whole product? Or just the client protocol? Single user? Team shares? Offline edits? Large files? Mobile on spotty networks? End to end encryption? What’s the SLO for conflict rate and time to converge? Once we scoped it to single-user sync across devices with offline support, I wrote requirements: detect changes, upload deltas, download updates, handle conflicts, resumable transfers, and don’t melt the battery. Non-goals: shared folders and fine-grained permissions. APIs and data model next. I used a file ID stable across renames, plus per-file version and per-device cursor. Client calls: /changes?cursor=..., /upload_session/start, /upload_session/append, /upload_session/commit, /download?file_id&version, /ack?cursor. Server tables: file_metadata(file_id, user_id, path, type, size, content_hash, current_version), file_versions(file_id, version, blob_ref, created_at), device_state(device_id, user_id, last_cursor), and an append-only changelog(user_id, seq, file_id, version, op). Architecture: client has a watcher, a local state DB, and a sync loop. It batches changes, computes chunk hashes, uploads missing chunks, then commits a new version. Server side: metadata service, blob store (chunked, content-addressed), and a per-user change log that devices long-poll or stream. Push notifications help, but the cursor-based pull is the truth. Scaling: shard by user_id for metadata + changelog, store blobs in object storage, cache hot metadata, and keep uploads on pre-signed URLs so the metadata tier doesn’t become the data plane. Chunking makes big files resumable and dedupe-friendly, but it adds CPU and more metadata reads. Tradeoffs I called out: last-writer-wins is simple but loses intent; per-file version vectors are heavier but reduce false conflicts. Chunk size is a fight: 4MB reduces round trips, 1MB retries faster on bad networks. Long-polling is cheaper than WebSockets at scale but slower to react. Failure cases: client crashes mid-upload, so upload sessions must be idempotent and garbage-collected. Network ***** cause retry storms, so exponential backoff + jitter and server-side rate limits. Two devices edit offline, so create conflicted copies and surface it in the client. Silent data corruption, so verify hashes on every download and run background repair. Rename vs edit races, so operations are applied against file_id, not path, and changelog ordering is per user, not global
-
J. (@munchivelo) reportedtrack back to just over a year to now. i'd built an automated ecommerce flow that took a whole store end to end. seo would research trends, products, and map those into .js scripts which would launch prompts that read those research files. that would feed an image gen prompt which created designs, set to specific standard. i'd generate them, and then ANOTHER prompt, would check the images, score them with a criteria, and either move them to an accepted folder, or move them to an archive folder. the accepted folders, would automatically fire a script which would open photoshop, map the image to smart layers, in a 'product shot' template i'd made, and then export all of the final product shots to another folder, and then exported the flat designs which would be used for the products. another script took the product images, did visual lookups, generated all product descriptions, renamed the images and generated the seo text. it ran optimizations locally via a jpegoptim and oxipng script. it then uploaded them to dropbox, and via API, would generate a dropbox link map. i had one barebones csv template, which i'd run a ps1 script through to map json files into the csv rows, and insert the dropbox link map. all my images, links, followed the exact same slugs, so it turned 2 hours of manual work into a 5 second bulk rename and insert. it then converted that csv into json, which then itself converted that json into ld-json for product rich listings. ai would write the product description based on a dataseo keywords, and googletrends json file that would run on every product type. collecting keywords for that specific product. it also formed it around brand profiles, copy guides and other things. this was sonnet 3 days, GPT 4.0 days, and it STILL wrote great copy when it had the right guidance. in the .js file, i'd replace all em dashes with a hyphen if they ever appeared. i built a custom product uploader, built my own php plugin which synced to local .js files and connected via rest. it was (and still is) one of the best wc product uploaders that exist, as it completely resets filterlookups only for that product, and is lightning fast because i upload it directly into the sql from json. no importers or WC rest needed. the images would be uploaded via ftp, and then on detection, would sync those to the media library. it took what would be 3 hours of manual work, and congested it into a 2 minute image, to fully live product. after that, i'd export sales data, the ai was constantly learning, sales data feeding back to files, which would then teach the ai what products work, what doesn't. what copy worked, what copy didn't. all of it was local on my pc. i wasn't selling an saas. it was just something that worked for my very particular setup. i built that mostly with GPT 4.0 and a little bit of 3.5. copy and pasting the chats from chatGPT. all the plugins, the php, everything. then some of it got improved inside vscode back on the old original copilot plans. this was before n8n, before agents were even a thing. all of that was built for me, local, syncing folder to folder, json file to json file. python scripts watching files, and .ps1 files that would follow up with other .ps1 files, which launched .js files which contained prompts for AI, and hitting the openAI API's whenever I needed the AI layer. eventually i built a terminal tool, which would allow me to run the scripts from the terminal, and i'd manually type in the slugs for which products i wanted processed. all files would sit in specific folders, and scripts would do the rest. i was so excited about that, giving my terminal app a shortcut icon and putting it onto my taskbar. that was a year ago. fast forward to now. the game has changed so much. ANYTHING and i mean anything is possible now. i've had this ******* idea for so long, to build a fully automated, self learning ecom business, that launches products end to end based on it's own research, writing, and growth, but the complexity of it previously , and being busy with life, it never got finalized. and i've finally been building the replacement for it, but it'll be able to do many other things. i'll be able to run that exact same system, except this time through a full app, with a canvas, and agent systems instead of .ps1 scripts. not to say i won't run scripts; they're an integral part of any automated workflow, but now it has superpowers. not only that, but i moved away from woocommerce entirely. instead i just built my own website builder, which is fully automated end to end. my brand profiles, my artwork system? i'm still using those, just for more things. now i can launch 50 brands just like it, running the same system, all in about 5 minutes. except this time, a year later, we have GPT 2.0, and seedance. which offer MUCH better usage for ecommerce than it was back 1 year ago. i also built an ad builder. it takes my brands images, or generates images. i've got background removed, and full skills and agents which practically generate the ads for me. it mixes all that into seedance videos, and posts in logos etc. now i take those image/videos, and build instagram, tiktok, facebook vids, generate descriptions, and upload them automatically. that's why it's so great building for yourself. the amount of reusability you get with it, the fact it's free forever, can never be beaten. i'm not selling anything yet. but if you're interested in seeing how i think about automation, then stay a while and listen. the tool i'm building will absolutely help you too. but i'll be honest. i'm actually quite scared to release it, solely down to how powerful it is. not many people do it like i do, and i'm finally on here to tell the world.
-
Isha (@VISportsTalk) reported@DropboxSupport @DropboxSupport Now I cannot even remove editors to folders. The Whole system is down
-
Ryan Peterman (@ryanlpeterman) reportedTop 3 takeaways from my conversation with @jamesacowling (CTO of Convex, former Senior Principal at Dropbox): 1) Career advice for the AI era - His take was that software isn’t about syntax or algorithms. It’s all about conceptualizing problems and coming up with clean solutions for them. And to build that muscle takes experience. He urged that people shouldn’t stop exercising that muscle or you’ll atrophy be left behind. Use AI but also make sure you aren’t being passive in your learning. The other major point he had was that using Claude Code isn’t that hard if you are a good engineer. The value isn’t in memorizing the details and learning all the latest AI tools. The important part is building things and solving problems that matter. He said you should just ignore Twitter for the most part and focus on what actually matters. 2) Fixing broken team incentives - The problem we discussed is when a team’s identity, mission and name all revolve around a system they own. What happens is these teams end up trying to protect the system rather than doing what is best for the company. The example fix James gave is when he was at Dropbox, he worked on a huge migration to move off of AWS. The resulting team was named after the system they built. He went out of his way to rename the team the “Storage team” instead. The reason this was so important is he felt that the direction of the team should be oriented around the problem they are solving for the company. Otherwise, imagine if moving back to AWS turns out to be better for the business. The team named after the existing system would have natural incentive to battle doing the right thing. He called this phenomenon “system bias” 3) Simple systems are the goal - To the untrained eye, simple systems can seem obvious but actually designing simple systems is much harder than building complex ones. And the key James mentioned is that simplicity reduces operational burden. Simple systems are easier to keep running and debug when they break. I asked him for a concrete example and he shared how Dropbox managed the metadata for where files are actually stored. All they did was have a cluster of 1000 MySQL nodes that stored the block ID and its location. Many people would say it wasn’t sophisticated but all the alternative proposals would ruin observability and simplicity of querying this data. The idea of complexity being incentivized in larger tech companies frustrated him. To him, the goal is to solve the problem not to check off the box for complexity.
-
Shripal Gandhi (@ishripalgandhi) reportedHey @Dropbox ... Your advanced customer service is horrible! I have benefit chasing them for an important issue since more than 2 days (not counting the weekend) now and I still do not have a resolution. Is it that your reps are allowed to answer only one email per client per day??
-
Ashutosh Rana ⛓️ (@ashutoshrana_20) reportedMost developers think Rust 🦀became popular because of ownership and borrowing. That's only half the story. Companies aren't adopting Rust because they enjoy fighting the borrow checker. They're adopting it because they're tired of C++-level performance coming with C++-level disasters. Look at where Rust is running today: • Linux kernel components • Windows security systems • Android services • Cloudflare edge infrastructure • AWS Firecracker microVMs • TiKV and Materialize • Discord and Dropbox backend systems • Solana and Polkadot Notice what these systems have in common. They're expensive to get wrong. A memory bug in a toy project is annoying. A memory bug in an operating system, cloud platform, database, or blockchain can cost millions of dollars, create security vulnerabilities, or bring down critical infrastructure. That's why Rust keeps showing up in the same places: • Systems software • Networking • Databases • Cloud infrastructure • Developer tools • Blockchains Not because it's trendy. Because the cost of unsafe software keeps rising. For years, engineers accepted the tradeoff: Performance → use C++ Safety → sacrifice performance Rust challenged that assumption. The result? A growing number of teams no longer see memory safety as a nice-to-have. They see it as a requirement. The ecosystem is still maturing. But Rust isn't fighting for relevance anymore. It's becoming one of the default choices for software where performance, reliability, and security are non-negotiable.
-
Marcin Moskała (@marcinmoskala) reportedStrictMode is a developer tool which detects things you might be doing by accident and brings them to your attention so you can fix them. StrictMode.ThreadPolicy among others can detect: - slow (blocking) operations on UI thread (detectCustomSlowCalls()) - blocking disc reads/writes on UI thread (detectDiskReads()/detectDiskWrites()) - mismatches between defined resource types and getter calls (detectResourceMismatches()) StrictMode.VmPolicy among others can detect: - leaks of Activity subclasses (detectActivityLeaks()) - when an SQLiteCursor or other SQLite object is finalized without having been closed. (detectLeakedSqlLiteObjects()) - when your app is blocked from launching a background activity or a PendingIntent created by your app cannot be launched (detectBlockedBackgroundActivityLaunch()) - when the calling application exposes a file:// Uri to another app (detectFileUriExposure()) - attempts to invoke a method on a Context that is not suited for such operation (detectIncorrectContextUse()) For both of them, we can specify a penalty: - penaltyLog() - Logs detected violations to the system log. - penaltyDeath() - Crashes the whole process on violation. - penaltyDialog() - Shows an annoying dialog to the developer on detected violations, rate-limited to be only a little annoying. - penaltyDropBox() - Enables detected violations log a stacktrace and timing data to the DropBox on policy violation. - penaltyFlashScreen() - Flashes the screen during a violation. - penaltyListener(…) - Set specific listener on violation.
-
Hawk (@iamhawkspire) reported@TheMilitiaGamer @Google nah lol, i'm just rawdogging without any online backups for my larger files atm. might end up checking out dropbox, tho their speeds are super slow on my end.
-
Rogerio Ferreira (@rogeriofza) reported@FMSlovakia portugal 2 meu super - dropbox link is not working
-
Lagoon Labs (@LagoonLabsMv) reportedDropbox founder Drew Houston is stepping down as CEO, moving to executive chairman. Stock dropped 2.3% on the news. His next move? He's eyeing the AI space - 'credit card alerts for my Cursor token spend.'
-
Abhishek Singh (@0xlelouch_) reportedThe interviewer asked me to design Dropbox file sync. I froze for a minute because I jumped into architecture before I nailed requirements. So I restarted with questions: single user or teams? offline edits? conflict handling? max file size? latency vs battery? Windows/Mac/Linux? end to end encryption? I scoped to: multi-device per user, near-real-time, offline support, conflict resolution, and basic sharing later. Then I wrote the core objects and APIs. Data model: User, Device, File, FileVersion (content hash, size, chunk list), Folder, Cursor/Checkpoint, and an Event log (append-only). APIs: UploadChunk, CommitFile(version, parentVersion), ListChanges(cursor), Download(version), Ack(cursor). Everything is idempotent with content hashes and request IDs. Architecture: client watches filesystem, batches changes, chunks large files, uploads to blob storage keyed by hash, then commits metadata to a strongly consistent store. Server writes an event per commit. Clients long-poll or use a push channel to get change events, then pull missing blobs. Scaling: hot path is metadata and change feed. Partition event logs by user/team, cache cursors, and keep blobs on cheap object storage with CDN for downloads. Dedup by hash saves real money when the same installer shows up on 500 laptops. Background compaction for old versions and tombstones. Tradeoffs I called out: strong consistency on metadata avoids weird conflicts but costs latency on cross-region; eventual consistency makes sync feel faster but harder to reason about. Chunk size trades memory and upload overhead vs retry cost. Conflict policy can be last-writer-wins (simple, lossy) or keep both versions (messy, safer). Failure cases: client crashes mid-upload so you need resumable multipart and garbage collection for orphaned chunks; network ***** so commits must be idempotent; clock skew so ordering cannot trust timestamps; two devices edit offline so you fork versions and surface a conflict file; duplicate events so cursor ack must tolerate replays; permissions changes during sync so downloads need auth checks at read time, not just at commit time
-
Auntieesq (@daniell0930) reported@MikeJShowalter The issue is the use of the data to train models not retention. Acting as if this is the same a Dropbox is disingenuous. They will not use the data to train for non-safety issues. Non-safety issue is doing some heavy lifting there. Do they have an outline of what this means?
-
Shubh (@TheSuperEng) reportedFor the past months, tech layoffs have tormented the internet. I studied the biggest layoffs and found the major reasons. Let's look at the layoffs first: 1. Meta: 11,000+ employees / 13% Meta admitted it overestimated post-Covid growth. Revenue slowed, costs were high, and the company moved toward becoming leaner. 2. Google: 12,000 employees / around 6% Google said it had hired for a different economic reality and needed to refocus resources toward its biggest priorities, especially AI. 3. Microsoft: 10,000 employees / less than 5% Microsoft said customers were optimizing digital spending after the pandemic boom, while the company shifted investment toward strategic areas like AI. 4. Amazon: around 30,000 roles / nearly 10% Amazon cut corporate jobs to reduce bureaucracy, improve efficiency, and restructure around AI and faster decision-making. 5. Salesforce: 10% of workforce Salesforce admitted it hired too aggressively during the pandemic and had to resize after customer spending slowed. 6. Spotify: 17% of workforce Spotify said growth had slowed, capital had become expensive, and the company needed to become more efficient after years of heavy investment. 7. Twitter/X: Around 3,700 employees / nearly 50% After Elon Musk’s takeover, Twitter cut roughly half its workforce to slash costs after a massive drop in ad revenue. 8. Snap — 20% of workforce Snap cut jobs after revenue growth slowed sharply. It also shut down non-core projects like games, Originals, and the Pixy drone. 9. Intel: 15,000 roles / around 15% Intel cut jobs because costs were too high, margins were weak, and the company needed a $10B cost-saving plan to stay competitive. 10. Dropbox: 528 employees / 20% Dropbox said demand had softened, the org had too many layers, and it needed to shift focus toward newer growth areas, like AI products. All these layoffs were majorly because of: 1. pandemic overhiring 2. slower revenue growth 3. higher interest rates 4. pressure to improve margins 5. companies cutting management layers 6. money shifting toward AI infrastructure This is majorly conflicting with the idea that AI automation is taking everyone's job. There is absolutely no evidence that AI has caused massive layoffs because of "automation."
-
Sara (@monamouroui) reported@SlmnMANUTD @WindowsLatest I didn't care about updating to the latest build. I cared about how Windows 11's AI deleted my Dropbox files from not only my desktop, but Dropbox itself! I managed to find them in DropBox's web Deleted Files folder and recover them. On top of this Windows decided to move all of my files that were on my hard drive to One Drive without my permission. And in the process of doing so created multiple subfolders D: OneDrive/My Documents/OneDrive/My Documents/OneDrive/My Documents/OneDrive/My Documents/OneDrive/My Documents/OneDrive/My Documents/OneDrive/My Documents/OneDrive/My Documents/OneDrive/My Documents/OneDrive/My Documents/OneDrive/My Documents/etc I brought it over the BestBuy to repair the OS because there were other problems, so I cannot tell you how many layers I had to click through to get to my actual documents. I was able to recover the apps that we affected by the update (ScanSnap, Adobe Illustrator, Acrobat, etc) doing a System Restore. But that didn't help with my files.
-
Harshita Renee (@harshitaxmars) reportedDespite me having proven him wrong about the exact requirement table issue he pinned on me as a “it’s her problem, shut her up” (Dropbox has the scoresheet proving I was not out of line, they were), I don’t think he can ever be wrong. That is just technical error on his part.
-
Tychique Esteve (@TychiqueY) reportedDay 4 building Verytis in public. I've been pushing hard to find first beta testers. Reddit 1,200+ views, real conversations, zero installs. X engagement, validation, zero installs. Direct DMs sent, read, zero responses. Everyone describes the problem in their own words. Nobody takes the step to test. So today I changed approach. I just submitted to Hacker News the community that broke Dropbox open in 2007. If the problem is real and the solution makes sense, this is where I'll find out. Watching the thread now.
-
Suburban Cyber Technologies (@suburbancyber) reportedShadow IT used to be "someone installed Dropbox." Now it's "someone connected our CRM to an AI agent without telling IT." Same problem. Different speed. Time to update your governance playbook. That's what I am having to do every couple weeks now it seems. #ITLeadership #CyberSecurity #EnterpriseIT
-
Anna Bubbly 🌺✨ (@AnnaBubblyMV) reportedIs uploading on Clips4Sale not working for anyone else? I can only get it to work if I do it through Dropbox, the usual upload button isn’t working
-
Adam (@aclater) reportedHey @FedEx @fedexhelp - you've got the wrong address on a dropbox in alexandria, and I keep getting your angry customers and packages. Happy to work together to fix it? I can DM details.
-
Vincent van der Meulen (@vinvan) reported@zoink You sit down and open your laptop. It's time to put some design files in Dropbox for coworkers. And ****, you need to finish your hotspot prototype. Your browser is still open on this weird design tool you got access to. Google Docs for design? Cool, but it will never work.
-
YC Insights. (@Aiagent_s) reportedMarch 23, 2018. Dropbox IPOs on NASDAQ. Surges 40%+ day one. Market cap: $12B First YC company ever to go public. Drew still owned 30%. The real lesson: both rejections were right. Both made the company better. Treat each rejection as a specific diagnosis. Then fix that specific thing.
-
tara_ (@TechByTaraa) reportedInstagram uses Python. Spotify uses Python. Dropbox uses Python. Reddit uses Python. Netflix uses Python. Pinterest uses Python. Quora uses Python. OpenAI uses Python. productivity never went out of fashion. still think Python is too slow? 👀
-
fercaton (@fercaton) reportedWriting things down isn't weak—it's like training wheels for your ideas. Your brain's not built to be an infinite Dropbox; it's for connecting dots, not hoarding them.
-
brett goldstein (@thatguybg) reportedclean but slow founder announcement video - lighting is really nice - music matches minimalist energy - glad to see the founder making this announcement but - waits WAYYY too long (til 1:24) to say what they're announcing. longest I've seen. - too much time on a problem everyone already gets - missed op animating visuals over hand gestures when explaining stuff - visuals way too small - captions are hard to read / too long - opening is a little awk - spenser sounds very nice when he says the first line, then drops the f bomb - script needs to be tightened up a ton - end kinda trails off and no CTA lots of people try this "breaking the third wall" opener where you show some authentic conversation preparing for a take, but a lot of folks mess up trying to fake it. dropbox had a bad one and this is similar. length is the killer with this. at 25k impressions, I'd be surprised if more than 100 people actually watched through to when he actually says what the product is. think this could have been a 5/5 if it was shorter, more to the point, and a really good animator worked with the script to animate things around spenser as he spoke.
-
Prajwal (@0xPrajwal_) reportedThe next time you say, "Python is too slow," remember: Netflix uses Python. Google uses Python. Anthropic uses Python. Meta uses Python. xAI uses Python. Perplexity uses Python. DeepSeek uses Python. Instagram uses Python. Spotify uses Python. Dropbox uses Python. Reddit uses Python. Pinterest uses Python. Uber uses Python. Airbnb uses Python. Quora uses Python. But yeah... it's apparently too slow for your todo app.
-
Adrien Matray (@AdrienMatray) reportedThe trap: when ~/.claude/ is in Dropbox, it often seems to work. No error message. Sometimes your preferences load, sometimes they do not. The symptom is silent quality drops you cannot trace. Not a visible failure. That is why people miss it.
-
Pradeep Kumar Xplorer (@ThaiKumar) reportedSomeone is regulating my upload to Dropbox 33 mb file suddenly the network is slow
-
Jeff Preshing (@preshing) reportedWhat's the point of using smarter models if "smarter" means 10% better at finding obscure bugs and having a sassy attitude? Most of the true productivity gains that coding agents have to offer, which are finite, can be obtained using open-weight models for literally 1/100 of the price. The catch is that you actually need to understand the code you are working on. At the same time, I still think there's a viable business serving proprietary models. People are willing to pay for Dropbox even though FTP is free, and it's nice to throw a tough problem at a stronger model occasionally (if intellectual property limitations allow it). Plus, there's a whole frontier productizing this stuff. Unfortunately, Anthropic is currently in the business of spreading tall tales about future improvements, then shaking down enterprise customers. Most of it is based on 2010s LessWrong posts full of category errors, some of which I remember reading back in those days. And their recent hostility toward users in the name of safety is a result of the same ideological recklessness.
-
Pelicart (@pelicartza) reported@lukey_stephens @_avdept real also - dropbox??? why would you pay $5 and not just set up an sftp server
-
Abhishek Singh (@0xlelouch_) reportedA good system design interview question for a Senior/Staff Backend Engineer is: Design Dropbox. At first, Dropbox looks like a simple file upload and download system. User uploads a file, we store it, and later they can access it from another device. But the real complexity is not uploading one file. The real complexity is sync, conflict resolution, versioning, permissions, large file handling, offline changes, metadata consistency, deduplication, and making the system feel instant across laptops, phones, and web. I would start by breaking the system into two major parts: file content and file metadata. File content means the actual bytes of the file. Metadata means file name, folder path, owner, size, checksum, version, permissions, timestamps, and deleted/restored state. These two should not be stored together. File bytes should go to blob/object storage, while metadata should go to a database that supports fast lookups and strong correctness. For upload, the client should not send a large file as one big request. A 2GB video should not restart from zero because the Wi-Fi dropped at 95%. So we should split files into chunks, calculate checksum for each chunk, and upload chunks independently. Once all chunks are uploaded, the server creates a file version that points to those chunks. This gives us resumable uploads, retry safety, and better network usage. A very important optimization is deduplication. If 10,000 users upload the same popular PDF, we do not want to store 10,000 copies of the same bytes. We can hash file chunks and store only unique chunks. Metadata will point to the chunk list. This saves huge storage cost, but we must be careful with privacy and security. Dedup should happen in a controlled way, not leak whether another user already has a specific file. The metadata service becomes the source of truth. Every change like upload, rename, move, delete, restore, or share should create a new metadata version. This is important because Dropbox is not just storage, it is a timeline of changes. If the user deletes a file by mistake, we should be able to restore it. If two devices make changes offline, we should know exactly what changed and when. Sync is the heart of the system. Each client should maintain a local sync token. Whenever something changes, the server writes it into a change log. The client can ask, “give me all changes after token X.” This is much better than scanning every folder again and again. For near real-time sync, clients can use long polling, WebSockets, or push notifications to know when new changes are available. Conflict handling is where naive systems fail. Imagine a user edits the same file on laptop while offline, and also edits it from mobile. When both devices come online, which version wins? For normal files, the safest approach is to keep both versions and create a conflict copy. For collaborative documents, we need deeper merging logic, but for a Dropbox-like file system, versioning plus conflict copies is usually good enough. Permissions should be checked before every sensitive operation. Sharing a folder is not just adding one row in a table. If a folder has thousands of files, permission inheritance becomes tricky. We should model ownership, viewer/editor access, shared links, link expiry, team policies, and audit logs. Permission changes should be strongly consistent because users must trust that removing access actually removes access. Downloads should first go through metadata and permission checks. After that, the system can return a short-lived signed URL from blob storage or CDN. Public/shared files can be cached more aggressively. Private files need careful access control. Performance is important, but leaking private files for speed is not acceptable.